比较MySQL中日期的年份和月份部分的最佳方法?以字符串形式安全吗?

时间:2015-12-21 22:18:09

标签: mysql

比较日期的年份和月份部分的最佳方法是什么?

目前,我正在做这样的事情:

DATE_FORMAT(`date`, "%Y-%m") <= "2015-12"

假设日期格式是可排序的,可以安全地将其作为字符串吗?

或者首先将它们作为整数投射会更好吗?

CONVERT(DATE_FORMAT(`date`, "%Y%m"), UNSIGNED INTEGER) <= 201512

编辑:这也有效:

DATE_FORMAT(`date`, "%Y-%m") BETWEEN '2014-06' AND '2015-12'

编辑2:用例的另一个例子是返回日期在几个YEAR-MONTH字符串中的任何一个中的所有行。例如,这也有效:

DATE_FORMAT(`date`, "%Y-%m") IN ('2014-06', '2014-09', '2014-12', '2015-03')

1 个答案:

答案 0 :(得分:0)

都不是。 MySQL提供内置函数来提取年,月,日等。使用它们。不要以任何方式自己动手。