Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql比较两个日期时间字段_Mysql_Datetime_Compare_Field - Fatal编程技术网

Mysql比较两个日期时间字段

Mysql比较两个日期时间字段,mysql,datetime,compare,field,Mysql,Datetime,Compare,Field,我想用时间比较两个日期,我想要tbl的所有结果,其中date1>date2 Select * From temp where mydate > '2009-06-29 04:00:44'; 但这只是比较日期,而不是时间。它给了我今天的所有结果集 '2009-06-29 11:08:57' '2009-06-29 11:14:35' '2009-06-29 11:12:38' '2009-06-29 11:37:48' '2009-06-29 11:52:17' '2009-06-29 1

我想用时间比较两个日期,我想要tbl的所有结果,其中date1>date2

Select * From temp where mydate > '2009-06-29 04:00:44';
但这只是比较日期,而不是时间。它给了我今天的所有结果集

'2009-06-29 11:08:57'
'2009-06-29 11:14:35'
'2009-06-29 11:12:38'
'2009-06-29 11:37:48'
'2009-06-29 11:52:17'
'2009-06-29 12:12:50'
'2009-06-29 12:13:38'
'2009-06-29 12:19:24'
'2009-06-29 12:27:25'
'2009-06-29 12:28:49'
'2009-06-29 12:35:54'
'2009-06-29 12:36:54'
'2009-06-29 12:49:57'
'2009-06-29 12:58:04'
'2009-06-29 04:13:20'
'2009-06-29 04:56:19'
'2009-06-29 05:00:23'
'2009-06-29 05:04:26'
'2009-06-29 05:08:17'
'2009-06-29 05:26:57'
'2009-06-29 05:29:06'
'2009-06-29 05:32:11'
'2009-06-29 05:52:07'

提前谢谢

您的查询显然返回了所有正确的日期,即使考虑到时间

如果你仍然对结果不满意,给DATEDIFF一次机会,在两次约会之间寻找消极/积极的结果


确保您的
mydate
列是
datetime
类型。

是否要订购

Select * From temp where mydate > '2009-06-29 04:00:44' ORDER BY mydate;

要显示为示例的查询是:

SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00是凌晨4点,所以显示的所有结果都在这之后,这是正确的

如果要在下午4点之后显示所有内容,则需要在查询中使用正确的(24小时)表示法

为了让事情更清楚一点,请尝试以下方法:

SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;

这将显示日期及其12小时的时间。

您可以使用以下SQL来比较日期和时间-

Select * From temp where mydate > STR_TO_DATE('2009-06-29 04:00:44', '%Y-%m-%d %H:%i:%s');
当我在问题中提到的相同类型的表和字段上使用相同的SQL时,附加了mysql输出-


它应该工作得很好。

没有比“2009-06-29 04:00:44”更差的结果了;,看来你的代码正在运行,还是我遗漏了什么?我希望这些日期在“2009-06-29 04:56:19”2009-06-29 05:00:23”2009-06-29 05:04:26“2009-06-29 05:08:17”2009-06-29 05:26:57“2009-06-29 05:29 29:29:06”2009-06-29 05:32:11“2009-06-29 05:52:07”嗯。。。在那之前你没有任何可见的东西。你似乎在建议“2009-06-2911:08:57”出现在“2009-06-2904:00:44”之前。上午4点早于上午11点,因此你会发现上午11点比上午4点大。再说一次,我错过了什么吗?2009-06-29 04:00:44'现在是下午4点,所以我不想要上午11点的记录。能给我拿吗!下午4点是16:00:00:)上午4点是04:00:00。不,我正在获取今天日期的所有结果集,而不是在我为ex指定的日期时间之后:-我给定的时间是下午4点,我将获取其中的上午11点记录。您给定的时间是凌晨4点。请尝试“选择*从我的日期所在的临时位置>”2009-06-29 16:00:44“;”明亮的Mysql正在比较字符串而不是日期!从现在起我会记住这一点。回答得很好,投了赞成票!