Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Datetime_Comparison - Fatal编程技术网

Mysql 日期间有损比较

Mysql 日期间有损比较,mysql,date,datetime,comparison,Mysql,Date,Datetime,Comparison,有没有一种方法可以让MySQL返回1而不是0用于SELECT NOW()='2016-10-10',而无需强制转换(CAST('2016-10-10'为日期))或转换为日期(DATE('2016-10-10')) 我的实际情况是比较DATE和DATETIME列。我想在这些列上加入JOIN,但这只有在我可以让MySQL只比较日期而忽略时间的情况下才有可能 我无法执行强制转换/转换,因为这非常昂贵()。您需要强制转换的不是'2016-10-10'字符串(因为它是一个),而是现在() NOW()返回当

有没有一种方法可以让MySQL返回
1
而不是
0
用于
SELECT NOW()='2016-10-10'
,而无需强制转换(
CAST('2016-10-10'为日期)
)或转换为日期(
DATE('2016-10-10')

我的实际情况是比较
DATE
DATETIME
列。我想在这些列上加入
JOIN
,但这只有在我可以让MySQL只比较日期而忽略时间的情况下才有可能


我无法执行强制转换/转换,因为这非常昂贵()。

您需要强制转换的不是
'2016-10-10'
字符串(因为它是一个),而是
现在()

NOW()
返回当前时间戳,包括小时、分钟和秒。而
'2016-10-10'
被解释为
'2016-10-10 00:00:00'
。这大概不等于当前时间

所以

UPD

我可以让MySQL只比较日期,忽略时间

对于比较,您可以在范围上进行比较,如:

coldate <= coldatetime AND coldate + INTERVAL 1 DAY > coldatetime
coldate coldatetime

这取决于你的实际情况,可能有益,也可能有害。

事实上,我解释得很糟糕,演员阵容在等号的左边。但请重新阅读我问题的第二部分。
coldate <= coldatetime AND coldate + INTERVAL 1 DAY > coldatetime