sql server全部函数使用教程带详细讲解实例

DATEDIFF()与GETDATE()的实战用法
需求,计算BAS_Contract表中End_date日期距离今天还有多少天;
根据需求首先使用GETDATE()函数得到今天日期(得到的日期格式为YYYY-MM-DD HH:mm:ss),再通过DATEDIFF()函数进行相减。
SELECT c.Contract_Name, c.Contract_Code, d.Dept_Name, c.Amount_ByHome, c.Begin_Date, c.End_Date, DATEDIFF(dd, GETDATE(), c.End_Date) AS 'Remaining_Days' FROM BAS_Contract c LEFT JOIN BAS_Department d ON d.Dept_SN = c.Dept_SN WHERE c.Begin_Date IS NOT NULL AND c.End_Date IS NOT NULL

以下内容转载至https://www.cnblogs.com/luna-hehe/p/9963305.html
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns
实例:计算一个月的第一天

select dateadd(mm,DATEDIFF(mm,0,getdate()),0);
原理分析:

  1. 数字0代表 1900-01-01 00:00:00.000

select cast(0 as datetime)

1900-01-01 00:00:00.000
2.DATEDIFF(mm,0,getdate()) :得到与1900-01-01相关多少个月

3.DATEADD(mm, M, 0) :M即上面得到相差的月份,0代表1900-01-01 ,加上相关的月份就是这个月的第一天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值