SQL Server 2005 - 在MillTime列中添加毫秒列

时间:2011-05-26 09:10:13

标签: sql datetime add

如何使用SQL Server 2005组合2列?

问题是DateTime存储在1列中,毫秒存储在另一列中。

我想在DateTime列上添加Milliseconds,以便为其提供更准确的DateTime。

我需要使用此DateTime来查询精确到毫秒的记录。

有什么想法吗?

我需要用添加的值替换DateTime。

SELECT * 
FROM TABLENAME 
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'

并运行查询。

2 个答案:

答案 0 :(得分:0)

SELECT(ColumnA + ColumnB)AS ColumnZ 从表

可能会解决您的问题。

答案 1 :(得分:0)

好吧,先解决你的问题:

SELECT DATEADD(millisecond,<milliscolumn>,<datetimecolumn>) from <table>

然后提交一份错误报告,告知这些报告应该只存储在一个列中。


您可以根据示例查询执行此操作,但请注意,这会破坏服务器使用索引的可能性:

SELECT * FROM TABLENAME WHERE
    DATEADD(millisecond,[MillisecondColumn],[DateTime]) between
        '2011-04-12T12:00:00' AND '2011-05-25T03:35:04'

如果这是一个大表,那么索引可能很重要。如果您无法更改填充此数据的任何内容,您可能希望将此计算作为持久计算列添加到此表中,然后对其进行索引和查询。

请注意,我已使用单个BETWEEN替换了您的两个比较,并且还调整了日期时间字符串,以便它们不受区域设置的影响。