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