SQL处理时间

以下基于SQL server数据库,其他数据库类似处理

  1. 处理时间中,应用最多的就是对时间进行格式化处理,这也是我在当前项目中应用最多的一个知识点 。
    datetime–>date 从datetime中提取date日期
  • DATE(date)
    date 参数是合法的日期表达式。

  • CONVERT(_datatype(length),_data_to_beconverted,style)
    _ datatype(length) 规定目标数据类型(带有可选的长度)
    _ data_to_beconverted 含有需要转换的值
    style 规定日期/时间的输出格式。 关于style
























































































    Style IDStyle 格式
    100 或者 0mon dd yyyy hh:miAM (或者 PM)
    101mm/dd/yy
    102yy.mm.dd
    103dd/mm/yy
    104dd.mm.yy
    105dd-mm-yy
    106dd mon yy
    107Mon dd, yy
    108hh:mm:ss
    109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
    110mm-dd-yy
    111yy/mm/dd
    112yymmdd
    113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)
    114hh:mi:ss:mmm(24h)
    120 或者 20yyyy-mm-dd hh:mi:ss(24h)
    121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)
    126yyyy-mm-ddThh:mm:ss.mmm(没有空格)
    130dd mon yyyy hh:mi:ss:mmmAM
    131dd/mm/yy hh:mi:ss:mmmAM

    例:CONVERT(varchar(12), getdate(), 111)) yy/mm/dd

 

2. 时间的加减运算(SQL server 默认格林尼治时间 )

getdate()返回当前日期和时间(精确到毫秒)

目前我所知道的日期加减方式有2种,

加减时刻:直接写数字或字符串 getdate()+’8:00:00’ 当前数据库标准时间增加8小时

加减日期:直接写数字或字符串 CONVERT(varchar(12), getdate(), 111))+5,当前数据库标准日期增加5天

  • 使用函数 ,返回日期

    DATEADD(datepart,number,date)

    date 参数是合法的日期表达式

    number 是您希望添加的间隔数;

    对于未来的时间,此数是正数,对于过去的时间,此数是负数

    例:DATEADD(d,-7, CONVERT(varchar(12), getdate()+’8:00:00’, 111))当前日期向前推7天
    关于datepart




























































    datepart缩写
    yy, yyyy
    季度qq, q
    mm, m
    年中的日dy, y
    dd, d
    wk, ww
    星期dw, w
    小时hh
    分钟mi, n
    ss, s
    毫秒ms
    微妙mcs
    纳秒ns

     

注:加减日期之前,必须先进性格式化处理,否则会出现歧义,会把前一天的此刻到今天的此刻当作一天

比如:2016-08-02 19:30:05.780 到 2016-08-03 19:30:05.780 当作一天处理

文章目录
|