gpt4 book ai didi

mysql - 寻找构建 MySQL 日期查询的方向

转载 作者:行者123 更新时间:2023-11-29 06:21:11 25 4
gpt4 key购买 nike

引用日期:2015 年 10 月 20 日

第 1 步:需要来自 PayTO 表的最大日期 > max(PayTO)

第 2 步:检查此 max(PayTO) < 引用日期 (20.10.2015)

MenTBL
======
TZ | Fname
===========
11 | ZZZ
22 | XXX
33 | CCC
44 | VVV


PayTbl
======
TZ | PayTO
===========
11 | 01/01/2015
11 | 03/05/2015
11 | 06/01/2016
22 | 01/01/2015
22 | 01/10/2015
33 | 01/01/2015
33 | 01/12/2015
44 | 01/01/2015
44 | 04/05/2015
44 | 18/10/2015

结果应该是这样的:

22    |  01/10/2015  |  XXX
44 | 18/10/2015 | VVV

重要提示:PayTO 是一个字符串字段

最佳答案

查询

select p.TZ, 
date_format(max(str_to_date(p.PayTO, '%d/%m/%Y')), '%d/%m/%Y') as dt,
m.FName
from PayTbl p
inner join MenTbl m
on p.TZ = m.TZ
group by p.TZ, m.FName
having max(str_to_date(p.PayTO, '%d/%m/%Y'))
< DATE('2015-10-20')
;

输出

+----+------------+-------+
| TZ | dt | FName |
+----+------------+-------+
| 22 | 01/10/2015 | XXX |
| 44 | 18/10/2015 | VVV |
+----+------------+-------+

sqlfiddle


笔记

due to the PayTO field type, have to use str_to_date. this will perform slower than the analogous query with date typed field

关于mysql - 寻找构建 MySQL 日期查询的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com