Spr*_*ner 1 sql sql-server sql-server-2008
我在从SQL Server检索时遇到问题所以我发布了这个[问题] [1]
我没有得到任何合适的答案.所以我已经将列数据类型更改datetime为varchar,现在它可以正常工作.
SELECT *
FROM test
WHERE (timeStamp BETWEEN '05-09-2013 18:23:57' AND '05-09-2013 18:23:59')
Run Code Online (Sandbox Code Playgroud)
但我的查询,如果varchar数据类型可以发挥的作用,datetime并在varchar我们还可以存储字符串,那么为什么SQL提供datetime的数据类型?我知道varchar占用的空间比datetime.我想知道其他原因.
将列的数据类型更改为datetime.如果你在where子句中使用datetime而不是varchar,你可以进行查询:
select *
from test
where timeStamp between convert(datetime, '2013-09-05 18:23:57', 120) and convert(datetime, '2013-09-05 18:23:59', 120)
Run Code Online (Sandbox Code Playgroud)
如果您使用日期的ISO格式,我很确定即使使用隐式转换也可以工作:
select *
from test
where timeStamp between '2013-09-05 18:23:57' and '2013-09-05 18:23:59'
Run Code Online (Sandbox Code Playgroud)
这里有关于强制转换和转换的更多信息.