我当前正在尝试在查询中将dd/mm/yyyy
中的日期转换为DATETIME
。这是我现在拥有的:
SELECT * from TABLE WHERE start BETWEEN convert(datetime, '10/20/2015', 101) and convert(datetime, '11/07/2015', 101);
当我在我的sql数据库中运行这个时,什么都不会发生。我没有得到错误,也没有得到结果。这是一种有效的方法吗?
我以前见过这个:
SELECT convert(datetime, '10/20/2015', 101);
我可以将其设置为一个变量并将其添加到我的查询中吗?
尝试转换start
,这样它的格式肯定与您的过滤条件相同。
SELECT * from TABLE WHERE convert(datetime, start, 101) BETWEEN convert(datetime, '10/20/2015', 101) and convert(datetime, '11/07/2015', 101);
您的转换不会生效,因为您以相同的格式101
进行了转换,这将给您相同的结果。请参阅此处的转换格式:
根据您的查询,您不需要包括小时、分钟、秒和毫秒,因为您只使用BETWEEN
比较这两个日期,所以只能使用DATE
数据类型。
BETWEEN convert(date, '10/20/2015') and convert(date, '11/07/2015');
如果你想将日期格式化为101
格式,你需要将其转换为CHAR
,比如:
SELECT CONVERT(char,'10/20/2015', 101)
result: 10/20/2015