时间格式转化 函数:DATE()
命令格式:DATE(datetime)
用途:将datetime的格式转化为YYYY-MM-DD
参数说明:
时间格式转化 函数:DATETIME()
命令格式:DATEtime(datetime)
用途:将datetime的格式转化为YYYY-MM-DD HH:MM:SS
参数说明:
取现在的时间 函数:GETDATE()
命令格式:GETDATE()
用途:取当时的时间 取出来的时间格式为:yyyy-mm-dd hh-mm-ss
参数说明:GETDATE后面的括号内为空
说明:取出来的是长日期格式,如需进行加减计算注意需要计算的日期的相关格式
案例1:取现在的时间
select GETDATE();
>2021-06-16 14:32:52
案例2:条件判断近7天
where date(time) between dateadd(getdate(),-7,'dd') and GETDATE()
对时间数据进行指定的单位和幅度修改 函数: DATEADD()
命令格式:
dateadd(datetime, delta, datepart)
用途:
按照指定的单位和幅度修改datetime的值
参数说明:
● datetime:datetime类型,日期值。若输入为string类型会隐式转换为datetime类型后参与运算,其它类型抛异常。
● delta:bigint类型,修改幅度。若输入为string类型或double型会隐式转换到biging类型后参与运算,其他类型会引发异常。若delta大于0,加;否则减。
● datepart:string类型常量, 修改单位,,支持格式对天的修改 “dd” , 对月的修改 “mm”,对年的修改 “yyyy” ,对小时修改“hh”,对分钟修改“mi”,对秒修改“ss” ,此外也支持扩展的日期格式, 年-“year”, 月-“month”或”mon”, 日-“day”, 小时-“hour”。 非常量、不支持的格式会或其它类型抛异常。
返回值:
返回修改后的结果,datetime类型。若任一输入参数为NULL,返回NULL。
备注:
按照指定的单位增减delta时导致的对更高单位的进位或退位,年、月、时、分、秒分别按照10进制、12进制、24进制、60进制、60进制计算。当delta的单位是月时,计算规则如下:若datetime的月部分在增加delta值之后不造成day溢出,则保持day值不变,否则把day值设置为结果月份的最后一天。
示例:
● 加一天:dateadd(trans_date, 1, 'dd')
● 减一天:dateadd(trans_date, -1, 'dd')
● 加二十个月:dateadd(trans_date, 20, 'mm')
若trans_date = '2005-02-28 00:00:00', dateadd(transdate, 1, 'mm') = '2005-03-28 00:00:00'
若trans_date = '2005-01-29 00:00:00', dateadd(transdate, 1, 'mm') = '2005-02-28 00:00:00'
若trans_date = '2005-03-30 00:00:00', dateadd(transdate, -1, 'mm') = '2005-02-28 00:00:00'
计算两个时间的差值,并转换成指定的单位 函数: DATEDIFF()
命令格式:
datediff(datetime1, datetime2, datepart)
用途:
计算两个时间的差值,并转换成指定的单位,如:秒。
参数说明:
● datetime1 , datetime2: datetime类型,被减数和减数,若输入为string类型会隐式转换为datetime类型后参与运算,其它类型抛异常。
● datepart: string类型常量,修改单位,yyyy、mm、dd、hh、mi、ss中的一个,指定时间差值的单位,也支持扩展的日期格式, 年-“year”, 月-“month”或”mon”, 日-“day”, 小时-“hour”。。若datepart不符合指定的几种pattern或者其它类型则会发生异常。
返回值:
返回时间差值,int类型。任一输入参数是NULL,返回NULL。
备注:
计算时会按照datepart切掉低单位部分,然后再计算结果。
datediff 的前两个参数必须是datetime格式,不能是date格式。
示例:
若start = ‘2005-12-31 23:59:59’, end = ‘2006-01-01 00:00:00’:
? datediff(end, start, 'dd') = 1
? datediff(end, start, 'mm') = 1
? datediff(end, start, 'yyyy') = 1
? datediff(end, start, 'hh') = 1
? datediff(end, start, 'mi') = 1
? datediff(end, start, 'ss') = 1