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
  • 相关阅读:
    ThinkPHP5查询-select与find理解
    Gradle一分钟实现Spring-MVC
    CentOS 7 之Helloworld with c
    Python3学习之二Django搭建
    Python3学习之一环境搭建
    CentOS 7 之安装Mono&MonoDevelop
    CentOS 7 之Cisco Anyconnect Secure Mobility Client
    CentOS 7 之Shell学习笔记
    CentOS 7 之安装X Window System
    CentOS 7 之几个新特性(转)
  • 原文地址:https://www.cnblogs.com/mqxs/p/6602046.html
Copyright © 2011-2022 走看看