我正在尝试使用sql将日期舍入到最近的月份
select date_format(date_field, %Y-%m) as date_rounded
以及获取错误:'无效操作:函数日期\格式(日期,“未知”)不存在[sql状态=42883,数据库错误代码=500310]'这个函数是否只存在于sql的某些版本中,或者我使用的不正确?
8ljdwjyq1#
此函数有助于对日期进行舍入。
SELECT CASE WHEN date_format(date_field, '%d') < '16' THEN date_format(date_field, '%Y-%m-01') ELSE date_format( DATE_ADD(date_field, INTERVAL 1 MONTH) , '%Y-%m-01') END as 'date_rounded' FROM my_table;
不足16日的改为当月1日,不足16日的改为下月1日
qyuhtwio2#
您可以使用日期函数:
to_char( add_months( date_field, case when datediff(day, date_field, last_day(date_field)) < date_part(d, date_field) then 1 else 0 end ), 'YYYY-MM' )
2条答案
按热度按时间8ljdwjyq1#
此函数有助于对日期进行舍入。
不足16日的改为当月1日,不足16日的改为下月1日
qyuhtwio2#
您可以使用日期函数: