如何使用SQL server2005合并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'然后运行查询。
发布于 2011-05-26 17:24:26
好吧,首先解决你的问题:
SELECT DATEADD(millisecond,<milliscolumn>,<datetimecolumn>) from <table>然后提交一份bug报告,说明这些内容无论如何都应该存储在一个列中。
您可以根据示例查询执行此操作,但请注意,这会破坏服务器使用索引的可能性:
SELECT * FROM TABLENAME WHERE
DATEADD(millisecond,[MillisecondColumn],[DateTime]) between
'2011-04-12T12:00:00' AND '2011-05-25T03:35:04'如果这是一个大表,那么索引可能很重要。如果您无法更改填充此数据的内容,则可能需要将此计算作为持久化计算列添加到此表中,然后对其进行索引和查询。
注意,我已经用一个BETWEEN替换了您的两个比较,还调整了日期时间字符串,使它们不受区域设置的影响。
发布于 2011-05-26 17:21:17
从表中选择(ColumnA + ColumnB)作为ColumnZ
也许能解决你的问题。
https://stackoverflow.com/questions/6136173
复制相似问题