【问题标题】:MySQL Where DateTime is greater than todayMySQL 其中 DateTime 大于今天
【发布时间】:2014-07-06 12:06:43
【问题描述】:

我想从我的 MySQL 数据库中获取比今天更大的每条记录。

示例:

"Go to Lunch","2014-05-08 12-00-00"
"Go to Bed","2014-05-08 23-00-00"

输出应该只有:

"Go to Bed","2014-05-08 23-00-00"

我使用 DateTime 作为日期列

已搜索:

但这对我不起作用。

查询(用于 PHP):

SELECT `name`,`date` FROM `tasks` WHERE `tasks`.`datum` >= DATE(NOW())

或(对于 PhpMyAdmin)

SELECT `name`,`date` FROM `tasks` WHERE `tasks`.`datum` >= 2014-05-18 15-00-00;

如何编写工作查询?

【问题讨论】:

  • 在小时/分钟/秒中使用破折号不是一个好主意。请改用23:00:00
  • 今天是 5 月 18 日,我所在的地方(以及世界大部分地区)。为什么获取未来日期的查询会返回以“2014-05-08”为日期的行?
  • 说你想要比今天更大的所有东西,但随后包含2014-05-08 23-00-00,这似乎表示同一天(不大于今天),这有点奇怪。
  • 对于查询,您只是在日期值周围缺少一些单引号。 SELECT `name`,`date` FROM `tasks` WHERE `tasks`.`datum` >= '2014-05-18 15-00-00'

标签: mysql sql date


【解决方案1】:

删除date() 部分

SELECT name, datum 
FROM tasks 
WHERE datum >= NOW()

如果您使用特定日期,请不要忘记它周围的引号并使用正确的格式与:

SELECT name, datum 
FROM tasks 
WHERE datum >= '2014-05-18 15:00:00'

【讨论】:

  • 不知道今天和现在一样。
  • 谢谢,这对我有用。我还在 ORDER By 之后写了 WHERE。但现在它可以工作了:D
【解决方案2】:

我猜你在找CURDATE()NOW()

  SELECT name, datum 
  FROM tasks 
  WHERE datum >= CURDATE()

查看 NOW 和 CURDATE 的结果

   NOW()                    CURDATE()        
   2008-11-11 12:45:34      2008-11-11       

【讨论】:

  • 我怀疑 OP 在他们的时代也可能有破折号。这可能会导致“没有任何效果”。
【解决方案3】:
SELECT * 
FROM customer 
WHERE joiningdate >= NOW();

【讨论】:

  • 你的答案和接受的答案一样!! - 请删除您的帖子并保持清洁;)。
猜你喜欢
  • 2012-08-10
  • 2011-07-08
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
  • 2015-08-03
  • 1970-01-01
相关资源
最近更新 更多