sqlserver日期计算的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver日期计算的问题相关的知识,希望对你有一定的参考价值。

DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 请问这句是什么意思呢?说得详细点好吗,,还有dd与DATEDIFF(dd,0,getdate()),与0又是什么意思呢?我是菜鸟,麻烦说得详细点谢谢

dateadd是一个用来相加的一个函数,dd指的是日期里面的日,DATEADD(dd,
DATEDIFF(dd,0,getdate()),
0)
意思是将DATEDIFF(dd,0,getdate())函数返回的日期增加0天,如果将0改成1,DATEADD(dd,
DATEDIFF(dd,0,getdate()),
1)那就是加一天
DATEDIFF函数返回的是两个日期之间的间隔,dd就是间隔多少天。
参考技术A DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 显示当天的半夜。
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 。
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1

SQL Server中一些有用的日期sql语句
1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜 SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.上个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
7.去年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
8.本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
9.本年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
10.本月的第一个星期一 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
11.今天的日期 select fn CURDATE() as today
参考技术B sql菜鸟进来学习

如何用SQL计算access2007数据表两个日期差?

参考技术A access与SqlServer 之时间与日期及其它SQL语句比较

1、Datediff:

1.1算出日期差:
1.access: datediff('d',fixdate,getdate())
2.sqlserver: datediff(day,fixdate,getdate())
ACCESS实例: select * from table where data=datediff('d',fixdate,getdate())
sqlserver实例: select * from table where data=datediff(day,fixdate,getdate())
1.2算出时间差:
1.access: datediff('h',fixdate,getdate())
2.sqlserver: datediff(Hour,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('h',HMD,getdate())
sqlserver实例: select datediff(Hour,'2004-12-10',getdate())
1.3算出月份差:
1.access: datediff('m',fixdate,getdate())
2.sqlserver: datediff(Month,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('m',HMD,getdate())
sqlserver实例: select datediff(Month,'2004-12-10',getdate())

以上是关于sqlserver日期计算的问题的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer 测试删除与日期计算

SqlServer 测试删除与日期计算

SQL Server:计算组中的不同日期

Sql Server 2008 计算两个日期之间的夜晚,但删除第 31 晚

如何推断 SQL Server 中的日期以计算每日计数?

当前日期时间的计算列?