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 )
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...