在SQL中,比较几月几日的大小是一个常见需求。可以通过以下 实现:
使用STR_TO_DATE()函数
sql
STR_TO_DATE('2022-03-08', '%Y-%m-%d')
此函数将字符串转换为日期类型。转换后的日期类型可以进行大小比较。
使用EXTRACT()函数
sql
EXTRACT(MONTH FROM '2022-03-08')
EXTRACT(DAY FROM '2022-03-08')
此函数可分别提取日期中的月份和日期。提取后可进行大小比较。
使用CASE WHEN语句
sql
CASE
WHEN EXTRACT(MONTH FROM '2022-03-08') > EXTRACT(MONTH FROM '2022-02-28')
THEN 1
WHEN EXTRACT(MONTH FROM '2022-03-08') < EXTRACT(MONTH FROM '2022-02-28')
THEN -1
ELSE 0
END
此语句可将两个日期进行比较,返回1(大于)、-1(小于)或0(等于)。
实例
sql
SELECT
CASE
WHEN STR_TO_DATE('2022-03-08', '%Y-%m-%d') > STR_TO_DATE('2022-02-28', '%Y-%m-%d')
THEN '2022-03-08大于2022-02-28'
WHEN STR_TO_DATE('2022-03-08', '%Y-%m-%d') < STR_TO_DATE('2022-02-28', '%Y-%m-%d')
THEN '2022-03-08小于2022-02-28'
ELSE '2022-03-08等于2022-02-28'
END
此查询将输出"2022-03-08大于2022-02-28"。