【发布时间】:2019-05-17 19:47:18
【问题描述】:
我有一个包含以下列的表格:
ID -> int
Name -> varchar
Date -> varchar
我想选择两个日期之间的值,如下所示:
SELECT * FROM table WHERE DATE BETWEEN '10-12-2018' AND '11-12-2018';
但是这个查询返回了错误的值,因为我在比较字符串。
我已经尝试在查询中将日期行转换为日期,但它不起作用。
我使用的是 SQL SERVER 2012。
【问题讨论】:
-
样本数据和预期输出会很有帮助!
-
为您的数据使用正确的数据类型,这不是问题。将您的列
[date]更改为date;为什么你会称一个列为“日期”,它是一个varchar..? -
不是因为你在比较字符串,而是因为日期格式不明确。
10-12-2018可能是 10 月 12 日或12 月 10 日,具体取决于日期格式 -
问题是我改不了!我已经和我的老板谈过了,不可能改变!
-
为什么不能改?他们的理由是什么?问题在于数据类型的选择。
标签: sql-server tsql