如何解决MySQL日期小于星期操作
| 假设您有两个日期时间值date_a
和date_b
如果在date_b
的日历周之内或之内出现date_a
,哪个表达式的计算结果为true?
解决方法
只需使用MySQL的
week()
函数。
例:
mysql> create table daten (a date,b date);
mysql> insert into daten values (\'2011-04-14\',\'2011-04-12\');
mysql> insert into daten values (\'2011-04-14\',\'2011-04-22\');
mysql> select * from daten where (week(a)=week(b) and year(a)=year(b)) or a<b;
+------------+------------+
| a | b |
+------------+------------+
| 2011-04-14 | 2011-04-12 |
+------------+------------+
这将为您提供与a相同或更早的日历周的所有记录。请注意,week(a)<=week(b)
不起作用,因为每年每年都重新开始。
注意:计数日历周的约定不止一种(星期从星期日或星期一开始,一年中第一周的开始时间不同)。您可以向week()
传递可选的第二个参数\“ mode \”来告诉它使用哪种约定。参见文档。当然,对于此问题,仅一周中的开始日期很重要,而一年中的第一周无关紧要。
,一种更强力的方法:
Select ...
From DateValues
Where date_a >= Date_Add( date_b,Interval -DayOfWeek( date_b ) + 1 Day )
And date_a <= Date_Add( date_b,Interval -DayOfWeek( date_b ) + 7 Day )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。