其实可以用存储过程,但想用另一种方法实现:

首先创建一个辅助表,可以设置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 输出当前月所有日期与对应的星期的更多相关文章

  1. 用DateTime.ToString(string format)输出不同格式的日期

    http://www.cnblogs.com/xvqm00/archive/2009/02/19/1394093.html DateTime.ToString()函数有四个重载.一般用得多的就是不带参 ...

  2. 简单思考 如何用PHP输出本周的周三日期

    简单思考 如何用PHP输出本周的周三日期?比如今天2017-10-31 计算本周周三应该是2017-11-01 自己动脑筋想一想,然后给我留言或者评论

  3. Mysql数据类型《四》日期类型

    日期类型 DATE TIME DATETIME TIMESTAMP YEAR 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等 YEAR YYYY(1901/2155) DAT ...

  4. js_在原有的日期上添加天数输出添加后的日期

    开始编码工作也有段时间了,想想没有留下点什么,有点遗憾.学到的一些经验,写写,分享一下.也给自己整理一下. 今天分享一下,在原有的日期上添加天数输出添加后的日期.开始做的时候,简单的思路是,直接用ne ...

  5. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...

  6. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  7. [转]用DateTime.ToString(string format)输出不同格式的日期

    DateTime.ToString()函数有四个重载.一般用得多的就是不带参数的那个了.殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期.以下把 ...

  8. JS判断日期是否在同一个星期内,和同一个月内

    今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...

  9. mysql 获得当前月1号的日期 和 0点日期方法

    day)) 当月0点时间:2015-12-01 00:00:00 day)) 当月1号时间:2015-12-01 10:45:22 day) 2015-12-01 <!-- 查询上月债权额度 - ...

随机推荐

  1. TCP_NODELAY 和 TCP_CORK主要区别

    一句话总结: tcp_nodelay:禁止nagle算法,有需要发送的就立即发送,比较常见 tcp_cork:它是一种加强的nagle算法,过程和nagle算法类似,都是累计数据然后发送.但它没有 n ...

  2. Mysql 如何设置字段自动获取当前时间

    应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...

  3. HDU 5902 GCD is Funny 数学

    GCD is Funny 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5902 Description Alex has invented a ne ...

  4. Kernel Function--核函数收集

    转自 http://www.zhizhihu.com/html/y2010/2292.html Kernel Functions Below is a list of some kernel func ...

  5. 【css】a:hover 设置上下边框在 ie6 和 ie7 下失效

    前段时间在写样式的时候发现了这个问题,虽然当时就解决了这个 bug 不过还是记录下,以免再次出现这样的问题. demo 代码: <!doctype html> <html lang= ...

  6. Swing How to make dialogues

    There are two types of dialog: modal non-modal: must use JDialog directly Taken JFileChooser as Exam ...

  7. 送给大家一个安卓版的easyradius短信提示客户端

    好像木有写博客了,送大家小软件,后期会适当更新 主要是方便一些用手机给用户发送到期短信的用户 下载地址: http://www.yss58.com/yss58

  8. 查询反模式 - GroupBy、HAVING的理解

    为了最简单地说明问题,我特地设计了一张这样的表. 一.GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值. 典型的表现就是跟在SELEC ...

  9. [Z] 关于c++ typename的另一种用法

    在看c++ primer的时候见到了一下这种用法: typedef typename std::vector<int>::size_type size_type; 觉得这里面的typena ...

  10. 数据库同步工具HKROnline SyncNavigator SQL Server互同步MySQL

    需要联系我QQ:786211180 HKROnline SyncNavigator 是一款专业的 SQL Server, MySQL 数据库同步软件.它为您提供一种简单智能的方式完成复杂的数据库数据同 ...