Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从日期选择星期几_Mysql - Fatal编程技术网

Mysql 从日期选择星期几

Mysql 从日期选择星期几,mysql,Mysql,MySQL中的下表记录了每天发生的事件计数 event_date event_count 2011-05-03 21 2011-05-04 12 2011-05-05 12 我想能够查询这个有效的日期范围和星期天。例如:“五月的星期二有什么活动?” 当前,“事件日期”字段是日期类型。MySQL中有没有函数可以让我按星期几查询此列,或者我应该向表中添加另一列来存储星期几 该表将容纳数十万行,因此如果有选择,我将选择最有效的解决方案(而不是最简单的解决方案)。检查函

MySQL中的下表记录了每天发生的事件计数

event_date     event_count
2011-05-03     21
2011-05-04     12
2011-05-05     12
我想能够查询这个有效的日期范围和星期天。例如:“五月的星期二有什么活动?”

当前,“事件日期”字段是日期类型。MySQL中有没有函数可以让我按星期几查询此列,或者我应该向表中添加另一列来存储星期几

该表将容纳数十万行,因此如果有选择,我将选择最有效的解决方案(而不是最简单的解决方案)。

检查函数在查询中使用,例如:

SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
这将找到5月份周六的所有信息

要获得最快的读取速度,请存储一个非规范化字段,即一周中的某一天(以及您需要的任何其他日期)。这样您就可以索引列并避免全表扫描

只需首先尝试上面的方法,看看它是否适合您的需要,如果不适合,则添加一些额外的列并将数据存储在write上。只需注意更新异常(如果更改事件日期,请确保更新“周中的天”列)


请注意,非规范化字段将增加写入所需的时间,增加写入时的计算,并占用更多空间。确保您确实需要这些好处,并且可以衡量这些好处对您的帮助。

如果您想要一周中某一天的文本表示,请使用DAYNAME()函数

谢谢你写得好的问题。仅供参考-问候语和标题标签不受欢迎,因为它不是论坛。希望你能找到你想要的答案。对于那些在2012年的人来说,2008年后的星期五是不被认可的。2012年则改为使用日。很好的回应,只是想让其他人注意到如何在较新版本的SQL Server上做到这一点。