zoukankan      html  css  js  c++  java
  • C# VS本地Sqlserver 操作笔记

    1、如何连接本地数据库

    -- string Info = @"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|PhysicalAssetDB.mdf;Integrated Security=True";
    string Info = @"Server=(LocalDB)MSSQLLocalDB;AttachDbFileName=|DataDirectory|PhysicalAssetDB.mdf;
    Integrated Security=SSPI;";
    SqlConnection _myConn
    = new SqlConnection(Info);
    _myConn.
    Open();

    2、如何获取新插入的数据的ID

    string sql += " SELECT SCOPE_IDENTITY() AS 'maxid';";//sql为原先的数据库插入语句,注意在加这个语句前不要有分号
    SqlCommand mycom = null;
     if (_IsTransaction)
           mycom = new SqlCommand(sql, _myConn, _mytran);
    else
           mycom = new SqlCommand(sql, _myConn);
    object num = mycom.ExecuteScalar();
    int insertID = (int)num;
    mycom.Dispose(); mycom = null;

     3、时间戳转日期格式

    SELECT DATEADD(S,1478577120,'1970-01-01 08:00:00');

     dateadd函数将某个日期加上一个特定的时间间隔值后返回datetime数据类型的值。

    dateadd (datepart,numer,date数据);

    numer:用于与detepart相加的值。如果指定了非整数值,则将舍弃该值的小数部分。

    date数据:一个用于解析为time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

    datepart:时间部分。下节。

    select getdate()    --输出 2013-03-09 16:03:59.293
    select dateadd(YYYY,10,getdate())    --加了十年    输出2023-03-09 16:04:36.893        

    4、日期格式转时间戳

    SELECT DATEDIFF(S,'1970-01-01 08:00:00', '2017-03-23 09:04:48');

     datediff函数将两个特定的日期数据相减,得到的结果可以按照detepart指定的格式返回特定的数据。

    datediff(datepart,startdate,enddate)

    执行中将使用enddate减以startdate的值,如果startdate晚于enddate将返回负值。执行结果如果超出整数范围将提示错误。

    startdate:一个可以解析为time、date、smalldate、datetime、datetime2或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

    enddate:一个可以解析为time、date、smalldate、datetime、datetime2或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

    datepart:时间部分,下节。

    select datediff(YYYY,'2011-11-11','2012-12-12')    --输出1 年份相减之后的确是1
    select datediff(day,'2011-11-11','2012-12-12')     --输出 397 两个日期相差的天数
    select * from test where datediff(day,Rq,getdate()) = 0 --其中Rq为日期列,此行代码的意思是什么呢?getdate()减去Rq列的值为0,Rq列的值与今天相减,号数为0  

    5、获取系统当前日期时间

    SELECT GETDATE(),GETUTCDATE(),YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE());

    6、获取任意时间部分DatePart

    datepart( datepart , date数据 );
    -- datepart:特定的要返回的数据的格式代码。
    -- date数据:一个可以解析为time、date、smalldatetime、datetime、datetime2或者datetimeoffset值的表达式、列表表达式、用户定义的变量或字符串文字。

    Datepart取值

    Datepart部分的取值如下表所示:

    说明 取值
    返回年度信息 Year、YYYY、YY
    返回月份信息 Month、MM、M
    返回日期信息 Day、DD、D
    返回周信息 Week、WK、WW
    返回每周星期几信息 WeekDay、DW
    返回季度信息 Quarter、QQ、Q
    返回一年中第几天的信息 DayOfYear、DY、Y
    返回小时信息 Hour、HH
    返回分钟信息 Minute、MI、N
    返回秒信息 Second、SS、SS
    返回毫秒信息 MillSecond、MS

    SELECT DATENAME(Quarter,GetDate()); -- 输出 2(6月)
    SELECT DATEPART(Quarter,GetDate()); -- 输出 1 现在是第几季度

     7、时间格式转字符串

    --Style=101时,表示日期字符串为:mm/dd/yyyy格式
    
    SELECT CONVERT(datetime,'11/1/2003',101)
    --结果:2003-11-01 00:00:00.000
    
    SELECT CONVERT(varchar,'2003-11-01 00:00:00.000',101)
    --结果:01/11/2003

    下面列举下所有格式

    0 Feb 22 2006 4:26PM 1 02/22/06
    2 06.02.22 3 22/02/06
    4 22.02.06 5 22-02-06
    6 22 Feb 06 7 Feb 22, 06
    8 16:26:08 9 Feb 22 2006 4:26:08:020PM
    10 02-22-06 11 06/02/22
    12 060222 13 22 Feb 2006 16:26:08:020
    14 16:26:08:037 20 2006-02-22 16:26:08
    20 2006-02-22 16:26:08 21 2006-02-22 16:26:08.037
    22 02/22/06 4:26:08 PM 23 2006-02-22
    24 16:26:08 25 2006-02-22 16:26:08.037
    100 Feb 22 2006 4:26PM 101 02/22/2006
    102 2006.02.22 103 22/02/2006
    104 22.02.2006 105 22-02-2006
    106 22 Feb 2006 107 Feb 22, 2006
    108 16:26:08 109 Feb 22 2006 4:26:08:067PM
    110 02-22-2006 111 2006/02/22
    112 20060222 113 22 Feb 2006 16:26:08:067
    114 16:26:08:067 120 2006-02-22 16:26:08
    121 2006-02-22 16:26:08.080 126 2006-02-22T16:26:08.080
    127 2006-02-22T16:26:08.080 130 24 ???? 1427 4:26:08:080PM
    131 24/01/1427 4:26:08:080PM    

     8、获取数据分组后每组的最后一条数据

    ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

    SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee
  • 相关阅读:
    PythonStudy——数据类型总结 Data type summary
    PythonStudy——可变与不可变 Variable and immutable
    PythonStudy——列表操作 List operatio
    PythonStudy——列表的常用操作 List of common operations
    PythonStudy——列表类型 List type
    PythonStudy——字符串扩展方法 String extension method
    PythonStudy——字符串重要方法 String important method
    AWT,Swing,RCP 开发
    JQuery插件机制
    最新知识网站
  • 原文地址:https://www.cnblogs.com/mqxs/p/6602046.html
Copyright © 2011-2022 走看看