在SQL中获取当前周的星期一日期是一个常见的日期处理需求,这涉及到日期函数的使用和一周起始日的理解。不同数据库系统提供了不同的函数来实现这一功能。
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AS monday_date;
或
SELECT DATE_ADD(CURDATE(), INTERVAL -WEEKDAY(CURDATE()) DAY) AS monday_date;
SELECT DATE_TRUNC('week', CURRENT_DATE)::date AS monday_date;
或者如果PostgreSQL设置为星期一开始:
SELECT (DATE_TRUNC('week', CURRENT_DATE) + INTERVAL '1 day')::date AS monday_date;
SELECT DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) AS monday_date;
SELECT TRUNC(SYSDATE, 'IW') AS monday_date FROM dual;
SELECT DATE('now', 'weekday 0', '-6 days') AS monday_date;
如果结果不符合预期,可能是因为:
解决方法通常是查阅特定数据库系统的文档,了解其日期函数的具体行为,并根据需要进行调整。
没有搜到相关的文章