2011-05-26 67 views
0

如何組合2列使用SQL Server 2005?SQL Server 2005 - 在DateTime列上添加毫秒列

問題是DateTime存儲在1列中,毫秒存儲在另一列中。

我想將毫秒添加到日期時間列以使其更準確的日期時間。

我需要使用此DateTime查詢記錄精確到毫秒。

有什麼想法?

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

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

並運行查詢。

回答

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替換了兩個比較,並且還調整了日期時間字符串,以便它們不受區域設置的影響。

+0

我需要使用DateTime值如下。 SELECT * FROM TABLENAME WHERE [DATETIME]> = '2011-04-12 12:00:00 AM' AND [DATETIME] <= '2011-05-25上午03時35分04秒' 如何我可以用添加的毫秒代替DateTime嗎? – ove 2011-05-26 12:53:31

+0

@overule - 如果你要添加一個更具體的例子,最好將它編輯到你的問題中,而不是(嘗試)將它作爲評論添加到我的答案 – 2011-05-26 12:54:50

+0

@Damien_The_Unbeliever請回頭看問題。 – ove 2011-05-26 12:57:31

0

SELECT(ColumnA + ColumnB)AS ColumnZ 從表

可能會解決你的問題。