【问题标题】:Does the mySql WEEK() function work for columns with type DATE?mySql WEEK() 函数是否适用于 DATE 类型的列?
【发布时间】:2014-08-27 19:20:53
【问题描述】:

WEEK() 函数是否适用于类型为 DATE 的列,还是需要类型为 DATETIME 的列?

各种 SO 搜索表明这应该可行,但此语句提供了一个空结果:

SELECT * FROM tbl_benutzer WHERE WEEK(dob,1) = WEEK(CURDATE(),1) ORDER BY id DESC

例如,当今天的日期为 2014-07-07 时,无法识别 dob 为 1972-07-09 的记录集。

非常感谢您的帮助!

【问题讨论】:

  • 你想要什么?你有什么错误吗?
  • DATE 应该可以正常工作。
  • 我用这个 SQL 语句得到了一个空的结果。例如,当今天的日期为 2014-07-07 时,无法识别 1972-07-09 的记录
  • SELECT WEEK('1972-07-09', 1) as week_dob, WEEK('2014-07-07', 1) as week_today; 的结果是27 | 28,看这个[fiddle] (sqlfiddle.com/#!2/1f05b/1)。这些值不相等。

标签: php mysql datetime


【解决方案1】:

您可以使用函数DATE,它仅从日期/日期时间值中提取日期部分。

您的查询将是这样的:

SELECT * FROM tbl_benutzer WHERE WEEK(DATE(dob),1) = WEEK(CURDATE(),1) ORDER BY id DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多