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求两个日期间的间隔数,如果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()) 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章