比较日期的年份和月份部分的最佳方法是什么?
目前,我正在做这样的事情:
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')
答案 0 :(得分:0)
都不是。 MySQL提供内置函数来提取年,月,日等。使用它们。不要以任何方式自己动手。