【发布时间】:2017-07-04 06:49:07
【问题描述】:
我对 SQL 查询有一个简单的问题。我想搜索字段,日期在特定日期和时间开始和结束。
字段定义为 CHAR 并具有结构:DD.MM.YYYY hh:mm:ss,我无法更改它。
我尝试声明一些变量并以此搜索,也尝试通过转换。
这是我尝试过但没有奏效的方法:
SELECT date FROM table WHERE date BETWEEN '1.01.2017 00:00:00' AND '1.02.2017 23:59:59'
SELECT date FROM table WHERE date >= '1.01.2017 00:00:00' AND date <= '1.02.2017 00:00:00'
SELECT date FROM table WHERE date >= Convert(DATETIME, '1.01.2017', 104) AND date <= Convert(DATETIME, '1.02.2017', 104)
在这个查询之后我总是得到所有日期,而不是我问的。
【问题讨论】:
-
您的第三个查询几乎是正确的,您只需要将日期列转换为
datetime数据类型。 -
最后一个查询中的
104是什么?CONVERT的参数是(expression, type)。 -
将日期存储为日期
-
@Barmar 如果您询问 104... 我发现这个查询的含义是:
Convert(datetime, 'date', style)。 -
@Frihu 你确定你在一个关于 MySQL 的页面中找到了它吗?我怀疑这是针对不同的 RDBMS。
标签: mysql sql date char sql-convert