mysql 获取当前日期周一和周日

来源:互联网 发布:xshell mac 代替 编辑:程序博客网 时间:2024/05/11 08:57

select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一  

select subdate(curdate(),date_format(curdate(),'%w')-7)//获取当前日期在本周的周日  

这两句语句是mysql用来取当前日期的周一或周日的一个方法,那么这句如何运作的呢?  

  

%w 是以数字的形式来表示周中的天数( 0 = Sunday, 1=Monday, . . ., 6=Saturday),0为周日,6为周六,跟我们一般的认知,一周是从周一开始的并不一样。  

  

date_format是一个日期转换函数  

  

date_format(curdate(),'%w') 表示当前日期到上周周日共有几天的间隔,即当前日期减去上周周日的日期=天数(例:curdate()为2011-01-11,那么上周周日为 2011-01-09,两者相减为2)所以若单独输出这一句:select date_format(curdate(),'%w') 结果就是2  

  

在mysql api里对于subdate函数是这样解释的:  

SELECT SUBDATE(NOW( ), 1) AS 'Yesterday',  

SUBDATE(NOW( ), INTERVAL -1 DAY) AS 'Tomorrow';  

正值为昨天,负值为明天,当前时间的起点,就是当前时间的上周周日  

  

subdate函数就是用当前时间减去2天,得到上周周日的时间为2011-01-09  

那么如果运行select subdate(curdate(),date_format(curdate(),'%w')-2)这句,就表示用当前时间-(2-2),即-0,得到的结果就是当前日期本身了。  

  

如果把%w换成%d呢  

%d 是用两位数字来表示月中的天数( 00, 01, . . ., 31)  

直接输出的结果就应该是11,表示当前日期在一个月内是第几天  

select date_format('2011-01-11','%d')  

放到开始的语句里就表示用当前时间减去11,结果为2010-12-31  

select subdate('2011-01-11',date_format('2011-01-11','%d'))

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 衣柜隔层板坏了怎么办 科三路线记不住怎么办 喂奶以后胸变小了怎么办 健身完肩膀缝疼怎么办 生过孩子胯部宽怎么办 无肩带文胸往下滑怎么办 内衣肩带老是往下滑怎么办 乳房发育一边大一边小怎么办 母猫乳房有硬块怎么办 19岁乳晕很大乳头很小怎么办 做完俯卧撑胳膊特别痛怎么办 电压低风扇转不动怎么办 小孩不配合康复锻炼怎么办 跑步机安全开关脱落怎么办 办健身卡贵了怎么办 跑步机安全锁丢了怎么办 老公的腿老是疼怎么办 跑步机钥匙丢了怎么办 跑步机磁铁丢了怎么办 瑜伽拉筋拉伤了怎么办康复 大腿拉筋拉伤了怎么办 肚子饿的咕咕叫怎么办 手表折叠扣松了怎么办? 手表链扣松了怎么办? 原车挡泥板碎了怎么办 车检通不过的车怎么办 车子被轻微刮了怎么办 车龙门架弯了怎么办 材料合格工地非说不合格怎么办 汽车翼子板撞过弄好缝隙大怎么办 手表秒针摔掉了怎么办 元征升降机泄压怎么办 自拍杆的杆子往下下滑怎么办 小狗被车压了一下拉血怎么办 有鬼给你磕头让你不好怎么办 腿又粗又短怎么办 腿又短又粗怎么办 因跑步小腿变粗怎么办 健身后小腿变粗怎么办 打非洲鼓打的手疼怎么办 无塔供水压力小怎么办