mysql 输出当前月所有日期与对应的星期
其实可以用存储过程,但想用另一种方法实现:
首先创建一个辅助表,可以设置CREATE TABLE `t4` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`num` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) insert into t4(num) select id from xxx limit 31;(偷懒插入31条数据) alter table t4 drop column num;
mysql> select * from t4;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| 31 |
+----+
31 rows in set (0.00 sec)
mysql> set @a=-1;
Query OK, 0 rows affected (0.00 sec) mysql> select @a:=@a+1,DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) AS '日期',DAYNAME(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) ) as '星期' from t4 where id<=DAYOFMONTH(last_day(curdate()));
+----------+------------+-----------+
| @a:=@a+1 | 日期 | 星期 |
+----------+------------+-----------+
| 0 | 2015-08-01 | Saturday |
| 1 | 2015-08-02 | Sunday |
| 2 | 2015-08-03 | Monday |
| 3 | 2015-08-04 | Tuesday |
| 4 | 2015-08-05 | Wednesday |
| 5 | 2015-08-06 | Thursday |
| 6 | 2015-08-07 | Friday |
| 7 | 2015-08-08 | Saturday |
| 8 | 2015-08-09 | Sunday |
| 9 | 2015-08-10 | Monday |
| 10 | 2015-08-11 | Tuesday |
| 11 | 2015-08-12 | Wednesday |
| 12 | 2015-08-13 | Thursday |
| 13 | 2015-08-14 | Friday |
| 14 | 2015-08-15 | Saturday |
| 15 | 2015-08-16 | Sunday |
| 16 | 2015-08-17 | Monday |
| 17 | 2015-08-18 | Tuesday |
| 18 | 2015-08-19 | Wednesday |
| 19 | 2015-08-20 | Thursday |
| 20 | 2015-08-21 | Friday |
| 21 | 2015-08-22 | Saturday |
| 22 | 2015-08-23 | Sunday |
| 23 | 2015-08-24 | Monday |
| 24 | 2015-08-25 | Tuesday |
| 25 | 2015-08-26 | Wednesday |
| 26 | 2015-08-27 | Thursday |
| 27 | 2015-08-28 | Friday |
| 28 | 2015-08-29 | Saturday |
| 29 | 2015-08-30 | Sunday |
| 30 | 2015-08-31 | Monday |
+----------+------------+-----------+
31 rows in set (0.00 sec)
mysql> set @a=-1;
Query OK, 0 rows affected (0.00 sec) mysql> select @a:=@a+1,DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) AS '日期',WEEKDAY(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) )+1 as '星期' from t4 where id<=DAYOFMONTH(last_day(curdate()));
+----------+------------+--------+
| @a:=@a+1 | 日期 | 星期 |
+----------+------------+--------+
| 0 | 2015-08-01 | 6 |
| 1 | 2015-08-02 | 7 |
| 2 | 2015-08-03 | 1 |
| 3 | 2015-08-04 | 2 |
| 4 | 2015-08-05 | 3 |
| 5 | 2015-08-06 | 4 |
| 6 | 2015-08-07 | 5 |
| 7 | 2015-08-08 | 6 |
| 8 | 2015-08-09 | 7 |
| 9 | 2015-08-10 | 1 |
| 10 | 2015-08-11 | 2 |
| 11 | 2015-08-12 | 3 |
| 12 | 2015-08-13 | 4 |
| 13 | 2015-08-14 | 5 |
| 14 | 2015-08-15 | 6 |
| 15 | 2015-08-16 | 7 |
| 16 | 2015-08-17 | 1 |
| 17 | 2015-08-18 | 2 |
| 18 | 2015-08-19 | 3 |
| 19 | 2015-08-20 | 4 |
| 20 | 2015-08-21 | 5 |
| 21 | 2015-08-22 | 6 |
| 22 | 2015-08-23 | 7 |
| 23 | 2015-08-24 | 1 |
| 24 | 2015-08-25 | 2 |
| 25 | 2015-08-26 | 3 |
| 26 | 2015-08-27 | 4 |
| 27 | 2015-08-28 | 5 |
| 28 | 2015-08-29 | 6 |
| 29 | 2015-08-30 | 7 |
| 30 | 2015-08-31 | 1 |
+----------+------------+--------+
31 rows in set (0.00 sec)
mysql> set @a=-1;
Query OK, 0 rows affected (0.00 sec) mysql>
mysql>
mysql> select @a:=@a+1,DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) AS '日期',DAYOFWEEK(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL @a DAY) ) as '星期' from t4 where id<=DAYOFMONTH(last_day(curdate()));
+----------+------------+--------+
| @a:=@a+1 | 日期 | 星期 |
+----------+------------+--------+
| 0 | 2015-08-01 | 7 |
| 1 | 2015-08-02 | 1 |
| 2 | 2015-08-03 | 2 |
| 3 | 2015-08-04 | 3 |
| 4 | 2015-08-05 | 4 |
| 5 | 2015-08-06 | 5 |
| 6 | 2015-08-07 | 6 |
| 7 | 2015-08-08 | 7 |
| 8 | 2015-08-09 | 1 |
| 9 | 2015-08-10 | 2 |
| 10 | 2015-08-11 | 3 |
| 11 | 2015-08-12 | 4 |
| 12 | 2015-08-13 | 5 |
| 13 | 2015-08-14 | 6 |
| 14 | 2015-08-15 | 7 |
| 15 | 2015-08-16 | 1 |
| 16 | 2015-08-17 | 2 |
| 17 | 2015-08-18 | 3 |
| 18 | 2015-08-19 | 4 |
| 19 | 2015-08-20 | 5 |
| 20 | 2015-08-21 | 6 |
| 21 | 2015-08-22 | 7 |
| 22 | 2015-08-23 | 1 |
| 23 | 2015-08-24 | 2 |
| 24 | 2015-08-25 | 3 |
| 25 | 2015-08-26 | 4 |
| 26 | 2015-08-27 | 5 |
| 27 | 2015-08-28 | 6 |
| 28 | 2015-08-29 | 7 |
| 29 | 2015-08-30 | 1 |
| 30 | 2015-08-31 | 2 |
+----------+------------+--------+
31 rows in set (0.00 sec)
注意:最后一个输出貌似是所有星期都加上1了,感觉不对,其实这是函数的规定来的:
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');
WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
这个例子用到的一个技巧是第一个@a:=@a+1来模拟循环记数,伪rownum.
mysql 输出当前月所有日期与对应的星期的更多相关文章
- 用DateTime.ToString(string format)输出不同格式的日期
http://www.cnblogs.com/xvqm00/archive/2009/02/19/1394093.html DateTime.ToString()函数有四个重载.一般用得多的就是不带参 ...
- 简单思考 如何用PHP输出本周的周三日期
简单思考 如何用PHP输出本周的周三日期?比如今天2017-10-31 计算本周周三应该是2017-11-01 自己动脑筋想一想,然后给我留言或者评论
- Mysql数据类型《四》日期类型
日期类型 DATE TIME DATETIME TIMESTAMP YEAR 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等 YEAR YYYY(1901/2155) DAT ...
- js_在原有的日期上添加天数输出添加后的日期
开始编码工作也有段时间了,想想没有留下点什么,有点遗憾.学到的一些经验,写写,分享一下.也给自己整理一下. 今天分享一下,在原有的日期上添加天数输出添加后的日期.开始做的时候,简单的思路是,直接用ne ...
- mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- [转]用DateTime.ToString(string format)输出不同格式的日期
DateTime.ToString()函数有四个重载.一般用得多的就是不带参数的那个了.殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期.以下把 ...
- JS判断日期是否在同一个星期内,和同一个月内
今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...
- mysql 获得当前月1号的日期 和 0点日期方法
day)) 当月0点时间:2015-12-01 00:00:00 day)) 当月1号时间:2015-12-01 10:45:22 day) 2015-12-01 <!-- 查询上月债权额度 - ...
随机推荐
- 比较好的文件复制工具fastcopy和校验工具
fastcopy http://ipmsg.org/tools/fastcopy.html.en extractfile --可以选用ADLER32计算模式,更快速.
- 基于JQuery.timer插件实现一个计时器
基于JQuery.timer插件实现一个计时器,需要的朋友可以参考下. 先去官网下载jQuery Timers插件 ,然后引用到html中.这里是1.2 version 复制代码代码如下: < ...
- IE6-IE11兼容性问题列表及解决办法总结
相比IE6-IE9那版,主要添加IE10和IE11的新变化. 以下是目录及下载链接: 目录 概述 2 第一章:HTML 3 第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TA ...
- Linux内核同步方法
1.原子操作,是其它同步方法的基础. 2.自旋锁,线程试图获取一个已经被别人持有的自旋锁,当前线程处于忙等待,占用cpu资源. 3.读写自旋锁,根据通用性和针对性的特点,普通自旋锁在特定场景下的表现会 ...
- 关于Server Sql 2008触发器的使用
1.创建同一个服务器下同一个数据库实例两个不同数据库表同步方法 --==================================== -- Create database trigger -- ...
- JSP Servlet性能分析
JSP Servlet性能分析:http://www.docin.com/p-757790851.html
- VirtualBox中安装CentOS-6.6虚拟机
1. 下载 可以到官网下载,http://mirror.centos.org/centos/ 如果下载速度太慢的话,也可以到163镜像下载: http://mirrors.163.com/centos ...
- OceanBase server处理网络包的回调逻辑
OceanBase处理网络包的逻辑还是蛮绕的,这里以UPS为例,作为给自己的备忘. UPS代码的main.cpp中调用ObUpdateServerMain的start启动server.start函数会 ...
- Android odex文件反编译
odex 是经过优化的dex文件,且独立存在于apk文件.odex 多用于系统预制应用或服务.通过将apk中的dex文件进行 odex,可以加载 apk 的启动速度,同时减小空间的占用.请参考ODEX ...
- 转载好文:如何进行基于情境数据的个性化EDM数据营销
根据Adobe和DMA(Direct Marketing Association)的<实时营销洞察报告> (Real-Time Marketing Insights Study),77%的 ...