我在将日期时间字段转换为hh:mm:ss.mmm
后在日期时间字段中设置相等条件时遇到问题:
select top 1 convert(varchar, timestamp, 114) from TEST_TABLE
/* returns a single entry of 11:33:35:000 */
然后我想查找具有该时间戳的所有条目:
select * from TEST_TABLE where convert(varchar, timestamp, 114) = '11:33:35.000'
/* returns nothing */
我也在R.H.S上尝试了'11:33:35'
(没有mmm)的格式。等号,没有运气。如果这很重要,我正在MS SQL Server Management Studio 2008中运行这些查询。但我需要一种跨平台工作的方式,因为最终我正在运行Perl脚本来通过DBI模块执行查询。
答案 0 :(得分:2)
11:33:35:000
与11:33:35.000
试
select *
from TEST_TABLE
where convert(varchar, timestamp, 114) = '11:33:35:000'
我更喜欢自己的风格108
select convert(varchar, GETDATE(), 108)
15时29分00秒
答案 1 :(得分:2)
您正在比较字符串,因此它们必须完全相同:
select * from TEST_TABLE where convert(varchar, timestamp, 114) = '11:33:35:000'
注意冒号而不是字符串文字中的句点。