gpt4 book ai didi

sql - MySQL查询返回等于或大于某个日期的行,其中日期以年、月、日列分隔

转载 作者:行者123 更新时间:2023-11-29 01:00:42 26 4
gpt4 key购买 nike

MySQL 表 EMPLOYEE 的列(beginyear、beginmonth、beginday、empid)都是 int 类型。

返回等于或大于日期 2009/8/13 的所有行的正确查询是什么?那是年、月、日。

这样的查询是不正确的,因为它不会返回包含日期的行,例如 2009/9/1(在下面的 where 子句中被 beginday >=13 过滤掉)或 2010/1/14。

SELECT *
FROM EMPLOYEE
where beginyear >= 2009
and beginmonth >= 8
and beginday >=13

假设我无法对架构进行任何更改,并且我必须从 JDBC 创建某种查询以获取结果。

最佳答案

我能为你在三个不同领域的糟糕情况做的最好的事情:

select *, concat(beginyear, '-',beginmonth,'-',beingday) as full_date 
FROM TABLE
WHERE CONCAT(beginyear, '-',beginmonth,'-',beingday) >= '2009-08-13'

MySql 的日期时间表达式的概念有点特殊,您可能想用 date() 函数包装 concat 以对其进行规范化。

关于sql - MySQL查询返回等于或大于某个日期的行,其中日期以年、月、日列分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3486046/

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