- 在SQL Server数据库使用sql语句进行查询时,使用Convert转换日期时遇到问题
当外部字符串时间传入Convert转换时:
select CONVERT(nvarchar(10),'2015/12/13 10:55:15.027',111)
结果:2015/12/13
当转换时间是:'2015-12-13 10:55:15.027'
select CONVERT(nvarchar(10),'2015-12-13 10:55:15.027',111)
结果:2015-12-13
而在数据表中获取的时间字段保存的数据格式是这样的,2015
-12
-13 10:55:15.027
而使用CONVERT转换时,会得到这样的结果
select CONVERT(nvarchar(10),addDate,111)
结果:2015 /12 /13
所以当外部时间字符串作为条件进行查询时需先将时间字符串强制转换为datetime类型
列:
select * from table where CONVERT(nvarchar(10),addDate,111) = CONVERT(nvarchar(7), CAST('2015-12-13 10:55:15.027' as datetime),111)
而使用CONVERT转换时,会得到这样的结果
select CONVERT(nvarchar(10),addDate,111)
结果:2015 /12 /13
所以当外部时间字符串作为条件进行查询时需先将时间字符串强制转换为datetime类型
列:
select * from table where CONVERT(nvarchar(10),addDate,111) = CONVERT(nvarchar(7), CAST('2015-12-13 10:55:15.027' as datetime),111)