SQL中时间相关函数

时间格式转化 函数: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 
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值