date数据
SQL date类型数据处理
使用data类型的数据
在数据库里我们经常会用到日期(时间)类型的的数据, 如果只是记录当然可以选择用char类型,但实际操作中我们经常会对时间类
型的数据进行处理,SQL系统库为date类 提供了很多方法(函数),使用date类型能让我们处理时间类型数据超级方便.
date类型格式:YYYY-MM-DD 如:2018-11-22
time类型格式:HH:MM:SS.sss 如:13:57:38.100(.后面是毫秒)
datetime类型格式::YYYY-MM-DD HH:MM:SS.sss 如2018-11-22-13:57:38.100.
date类型转为char类型
转换函数:to_date();
作用:将char类型数据转换为date类型数据
具体用法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。
如:to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') 将得到具体的时间.
date类型的数据处理函数
Getdate() 返回当前日期和时间
没啥好说的,就是字面意思
Datepart() 返回日期/时间的单独部分
具体用法:
DATEPART(datepart,date)
date 参数是合法的日期表达式,当然可以是日期(时间)的列名
datepart 参数可以是下列的值:
如:
DATEPART(mm,getdate() ) 返回当前月份(两位整数类型,如 09 )
DATEPART(yyyy,getdate() ) 返回当前年份(四位整数类型,如 2018 )
Dateadd() 在日期中添加或减去指定的时间间隔
DateAdd ( I , N , D ) 返回一个日期加上一段期间后的日期
I是变化的时间单位:可以是
缩写 含义 中文
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
N是变化值的大小,
**注意:系统库并没有datesub()函数,N为负数时就是减了**
D是待变化日期
举个栗子:
DateAdd ( "d", 10 , "2017-2-12 )的返回值为2017-2-22
DateAdd ( "yyyy", 10 , "2017-2-12 )的返回值为2018-2-22
以上用法很简单,值得一提的是这个函数不是简单的数字加减,而是根据实际时间推过去的
例如:
DateAdd ( "d", 20 , "2017-2-12 )的返回值为2017-3-4
DateAdd ( "m", 1 , "2017-2-28 )的返回值为2017-3-31
Datediff() 返回两个日期之间的时间
datediff()就是用来求两个时间点的时间差
具体用法:datediff(I,start_time,end_time)
I为设定两个日期之间的期间计算单位与上面函数的参数I意思差不多相同
如:
atediff("d",'2017-7-31','2017-8-31')的返回值为31
datediff("m",'2017-7-31','2017-8-31')的返回值为1
Convert() 用不同的格式显示日期/时间
convert(CONVERT ( data_type , expression , style )
第一个参数为要转换后的数据类型
第二个参数为要转换的表达式,可以是字段或表达式
第三个参数为转换后的格式,如日期型换后有很多种格式,y yyy/mm/dd 等也可以是格式代号。
常用格式的代号及其对应格式:
如convert(char(30) , getdate() , yy-mm-dd )的返回值为2018-10-30
格式代码 | 格式 |
---|---|
0或100 | month dd yyyy hh:miampm |
1 | mm/dd/yy |
2 | yy.mm.dd |
3 | dd/mm/yy |
4 | dd.mm.yy |
5 | dd-mm-yy |
6 | dd month yy |
7 | month dd,yy |
8 | hh:mi:ss |
9或109 | month dd yyyy hh:mi:ss:mmmampm |
10 | mm-dd-yy |
11 | yy/mm/dd |
12 | yymmdd |
101 | mm/dd/yyyy |
102 | yyyy.mm.dd |
103 | dd/mm/yyyy |
104 | dd.mm.yyyy |
105 | dd-mm-yyyy |
106 | dd month yyyy |
107 | month dd,yyyy |
108 | hh:mi:ss |
110 | mm-dd-yyyy |
111 | yyyy/mm/dd |
12 | yyyymmdd |