Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
“使用31”是否安全;“每月最后一天”;在MySQL中比较日期时_Mysql - Fatal编程技术网

“使用31”是否安全;“每月最后一天”;在MySQL中比较日期时

“使用31”是否安全;“每月最后一天”;在MySQL中比较日期时,mysql,Mysql,我知道这不是一个完美的方法,但有问题吗 在比较MySQL和其他数据库中的日期时,只需使用Y-m-31as 这个月的最后一天 比如说 从日期>2015-02-01和日期='2015-02-01'和date=和我喜欢你的答案,这需要在查询生成器中进行一些更改。。但是可以工作:)您是否看到我的原始代码中存在任何可能的问题(外观除外)?@d.raev您的代码在某些服务器中可能会失败-有一些标志可以启用严格的日期检查,这会将无效日期转换为0000-00-00,导致您始终返回零行。如果你完全、永久地控制服务

我知道这不是一个完美的方法,但有问题吗 在比较MySQL和其他数据库中的日期时,只需使用
Y-m-31
as 这个月的最后一天

比如说

从日期>2015-02-01和日期<2015-02-31的订单中选择*您可以使用MySQL函数实现此功能:

SELECT * FROM orders WHERE date >= '2015-02-01' AND date <= LAST_DAY('2015-02-01')

SELECT*FROM orders,其中date>='2015-02-01'和date=
我喜欢你的答案,这需要在查询生成器中进行一些更改。。但是可以工作:)您是否看到我的原始代码中存在任何可能的问题(外观除外)?@d.raev您的代码在某些服务器中可能会失败-有一些标志可以启用严格的日期检查,这会将无效日期转换为
0000-00-00
,导致您始终返回零行。如果你完全、永久地控制服务器,它看起来相当安全-MySQL在我的MySQL安装中似乎将
2015-07-50
处理为
2015-07-31
(我很好奇它是否会变成
2015-08-19
或其他什么)。我看不出这个策略有什么问题。我不理解你的问题。但是你看起来像这样吗?从日期字段>='2015-02-01'和日期字段的订单中选择*或者,您看起来像这样吗?;从日期格式(日期,'%Y-%m-01')和日期格式(日期,'%Y-%m-31')之间的订单中选择*此方法与其他方法相比的优点是,一个范围可以使用索引。一个函数不能。请注意,
2015-03-01-间隔1天
可能更令人满意。我也在想,我们是否打算使用MySQL计算最后一天,但希望设置为31就可以了。