SQL Server 2005-将Milliseconds列添加到DateTime列上

问题描述

| 如何使用sql Server 2005合并2列? 问题是DateTime存储在1列中,而毫秒存储在另一列中。 我想将毫秒数添加到DateTime列,以使其更准确的DateTime。 我需要使用此DateTime来查询精确到毫秒的记录。 任何想法? 我需要用添加的值替换DateTime。
SELECT * 
FROM TABLENAME 
WHERE [DateTime] >= \'2011-04-12 12:00:00 AM\'
AND [DateTime] <= \'2011-05-25 3:35:04 AM\'
并运行查询。     

解决方法

好吧,首先解决您的问题:
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\'
如果这是一个大表,那么索引可能很重要。如果您无法更改填充此数据的任何内容,则可能需要将此计算作为持久化的计算列添加到此表中,然后对其进行索引和查询。 请注意,我已经用一个ѭ3代替了您的两个比较,并且还调整了日期时间字符串,以使它们不受区域设置的影响。     ,SELECT(ColumnA + ColumnB)AS ColumnZ 从表 可能会解决您的问题。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...