SQL Server 常用日期函数

最近在 SQL Server 上写存储过程,发现在 MySQL 上能使用的一些日期函数无法使用,在此简要介绍一下 SQL Server 中一些日期函数的使用。

SQL Server 版本是 Microsoft SQL Server 2008 (RTM) .

一、常用函数

1.1 返回日期和时间的函数
  • getdate(): 返回当前时间,类似于 MySQL 中的 now() 与 current_timestamp() 函数,区别是时间部分不是精确到秒,而是精确到毫秒。
    select  getdate()
    -- 返回 2020-03-14 11:45:13.180
    
  • datepart(datepart, date): 将日期部分以整数返回。第一个参数 datepart 是需要返回日期部分的类型, date 是字符串类型的日期(可以是时间)。
    下表是常用的datepart的取值,适用于其他日期函数:
    datepart说明
    year
    month
    day
    week
    weekday星期
    hour
    minute
    second
  • datename(datepart, date): 区别与 datepart 的是它是将日期部分以字符串返回。datepart 设为 w 时,返回的是“星期 x ”的字样。
  • day(date): 返回给定日期(可以是时间)的月份中的第几天,是整数;
  • month(date): 返回给定日期(可以是时间)的月份,是整数;
  • year(date): 返回给定日期(可以是时间)的年份,是整数;
1.2 返回两个日期之间的差值
  • datediff(datepart, startdate, enddate): 返回两个日期之间日期的差值(可以是时间),是整数值。当整数值超过-2,147,483,648到+2,147,483,647这个范围时使用 datediff_big() 函数。
1.3 修改时间函数
  • dateadd(datepart, number, date): 将 number 添加到日期(可以是时间)部分并返回新的时间值。SQL Server没有 datesub函数,当需要返回指定时间之前的时间时,number设置为负的就好啦。
  • eomonth(date, offset_number): 返回包含指定日期(可以是时间)的月份的最后一天(日期形式),并带有可选的偏移量 offset_number ,偏移单位是1个月。
    select eomonth('2020-03-17 20:12:11', -1)
    -- 返回 2020-02-29
    

二、常见日期函数使用场景

未完待续……

参考:
[1] 易百教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值