以下基于SQL server数据库,其他数据库类似处理
- 处理时间中,应用最多的就是对时间进行格式化处理,这也是我在当前项目中应用最多的一个知识点 。
datetime–>date 从datetime中提取date日期
DATE(date)
date 参数是合法的日期表达式。CONVERT(_datatype(length),_data_to_beconverted,style)
_ datatype(length) 规定目标数据类型(带有可选的长度)
_ data_to_beconverted 含有需要转换的值
style 规定日期/时间的输出格式。 关于styleStyle ID Style 格式 100 或者 0 mon dd yyyy hh:miAM (或者 PM) 101 mm/dd/yy 102 yy.mm.dd 103 dd/mm/yy 104 dd.mm.yy 105 dd-mm-yy 106 dd mon yy 107 Mon dd, yy 108 hh:mm:ss 109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM) 110 mm-dd-yy 111 yy/mm/dd 112 yymmdd 113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h) 114 hh:mi:ss:mmm(24h) 120 或者 20 yyyy-mm-dd hh:mi:ss(24h) 121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h) 126 yyyy-mm-ddThh:mm:ss.mmm(没有空格) 130 dd mon yyyy hh:mi:ss:mmmAM 131 dd/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天
关于datepartdatepart 缩写 年 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 当作一天处理