【问题标题】:SQL DATEDIFF with WHERE or BETWEEN operator带有 WHERE 或 BETWEEN 运算符的 SQL DATEDIFF
【发布时间】:2020-10-03 07:40:42
【问题描述】:

我正在处理 mysql 查询语句。我必须找到两个日期之间的天差。日期一来自我的表格列,日期二是 now()。而且我需要比较输出日期必须在 50 到 80 天的范围内。我尝试过使用下面的两行代码。但两者都不起作用。任何人都可以帮忙..

SELECT DATEDIFF(DAY, '2012-01-01', GETDATE()) AS d WHERE d>50 AND d<80

SELECT DATEDIFF(DAY, '2012-01-01', GETDATE()) AS d WHERE d BETWEEN 50 AND 80

【问题讨论】:

  • mysql 或 sqlserver ???? getdate() 来自 sqlserver 而不是 mysql
  • 如果您说“两者都不起作用”会出现什么错误,那就太好了
  • 我正在使用 Caspio 云数据库服务器。通常对于当前日期,我使用 GetUTCDate()。这工作正常。请考虑整个声明而不是当前日期。我需要知道我目前的陈述有什么问题。因为我没有收到任何错误。

标签: php mysql date select where-clause


【解决方案1】:

from 子句不能使用在select 子句中定义的别名。您需要重复表达式,或使用子查询或 cte。

如果您正在运行 SQL Server(如您的代码所示):

select datediff(day, '2012-01-01', getdate()) as d 
from ...  -- you should have a "from" clause
where datediff(day, '2012-01-01', getdate()) between 50 and 80

在 MySQL 中(如您问题上的标签所示):

select datediff(current_date, '2012-01-01') as d 
from ...
where datediff(current_date, '2012-01-01') between 50 and 80

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多