MySQL学习:连接年⽉⽇,并查询查询从表中获取最新⽇
期,活⽤Datediff()
⼀、连接年⽉⽇
STR_TO_DATE(concat(stat_year,'-',stat_month,'-',stat_day),'%Y-%m-%d')北京周边一日游
是把年⽉⽇拼接成字符串之后再转车date类型
⼆、查询从表中获取最新⽇期
(1)查询从具有⽇期记录的表中获取最新⽇期
炖鸡肉的做法
create table ZZZZTable
(
DueDate date
); #创建表腊八节的意义>碱面吃了对人体有害吗
inrt into ZZZZTable values('2018-10-01'); #往表⾥加数值
inrt into ZZZZTable values('2016-12-31');
inrt into ZZZZTable values('2019-07-02');
inrt into ZZZZTable values('2015-01-12');
inrt into ZZZZTable values('2019-04-26');冬天九寨沟
lect *from ZZZZTable order by DueDate DESC limit 1
(2)提取每个name对应的最新的⽇期
表:
lect *,max(DueDate) as 最新⽇期 from ZZZZTable
饱满近义词>二年级比喻句大全group by name
三、活⽤DATEDIFF函数
datediff(参数1,参数2)
参数1 - 参数2 等于两个⽇期的间隔天数,结果可表⽰正负。
lect datediff('2022-01-02','2022-02-01')
最终信仰
如果涉及到时分秒⽇期:
lect datediff('2022-01-02 22:00:00','2022-02-01')
注:在⽇期计算中,如果存在时分秒的部分,该部分会被忽略。
datediff只对⽇期(年⽉⽇)部分进⾏计算,即只对天进⾏计算。
四、字符串转⽇期
rq字段形式:20100901
1)⽆需转换的:
SELECT * FROM tairlist_day WHERE rq>'2010-07-31' AND rq<'2010-09-01'
2)使⽤:DATE_FORMAT
SELECT * FROM tairlist_day
WHERE DATE_FORMAT( rq, '%Y-%m-%d')>'2010-08-01' AND DATE_FORMAT( rq, '%Y-%m-%d')<'2010-08-03'
其中第1要在⼀个“宽松”的语法是被允许的:以任何标点符号作为⽇期部分和时间部分中的定界符,如:⼀个 YYYYMMDD 或YYMMDD 格式的数字,只要数字看起来像是⼀个⽇期。例如,19830905 和 830905 被解释成为 '1983-09-05 '。