SQL里的这个DATEDIFF("d",time,now()) 是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL里的这个DATEDIFF("d",time,now()) 是啥意思?相关的知识,希望对你有一定的参考价值。

SELECT * FROM * WHERE DATEDIFF("d",time,now()) < 7
这是要实现一个周排行功能的SQL语句,但是后面这里是指什么啊?谢谢在线等!!
那"d"是指什么呢?DATEDIFF是什么意思呢?能整个翻译一遍吗?求求各位了!!

DATEDIFF(interval, time1, time2)
DATEDIFF求两个日期间的间隔数,如果time1>time2返回值为负数.
interval是间隔数的单位,有下面这些常用值:
yyyy
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒

上面的DATEDIFF("d",time,now()) < 7 就是取time到现在的时间间隔小于7的记录,也就是一周内的记录.
参考技术A time与现在的时间的间隔小于7天 参考技术B 周排行的意思!

DATEDIFF CASE 语句为空

【中文标题】DATEDIFF CASE 语句为空【英文标题】:DATEDIFF With CASE Statement blank 【发布时间】:2016-03-18 09:49:12 【问题描述】:

我在 SQL 查询中提取一些数据以输出到 PHP,如下所示。

, DATEDIFF('d',Activity.CreatedOn, NOW()) As Dif
, DATEDIFF('d',qSWxSRLastUpdated.MaxOfCreatedOn, NOW()) As LastUpd
, FORMAT((qSWxSRLastUpdated.MaxOfCreatedOn), 'DD-MMM-YYYY') AS Start
, FORMAT((Activity.CreatedOn), 'DD-MMM-YYYY') AS CreatedOn
, DATEDIFF('d',(Select CASE WHEN Activity.CreatedOn > qSWxSRLastUpdated.MaxOfCreatedOn 
THEN Activity.CreatedOn 
ELSE qSWxSRLastUpdated.MaxOfCreatedOn 
END), NOW()) AS MostRecentDate

现在,最初的 DATEDIFF 语句正在提取格式为 CreatedOn 的上次更新和格式为 Dif 的上次活动之间的日期差异。在我尝试添加上述 DATEDIFF Case 语句之前,这些都可以正常工作

这可能是我对 SQL 的理解(对它来说相对较新),但是查询返回到前端空白但没有出错,所以我假设我的代码有问题?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

Access SQL 不知道CASE WHEN

请改用IIf()Switch() 函数。

【讨论】:

以上是关于SQL里的这个DATEDIFF("d",time,now()) 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER DATEDIFF()函数用法

怎样得出sql中日期差

C# 正则提取sql语句字符串里的字段名

T-SQL DateDiff - 按“整小时前”进行分区,而不是“时间分钟变成 00 以来”

MS SQL系统函数之DATEDIFF

datediff函数用法!