2013-07-10 125 views
0

我有這個表,SQL Server的日期格式爲以下12年1月1日1:15月/日/年時:分

create table Photonics 
(
    dt datetime, 
    [12:15 AM] decimal(10, 2), 
    [12:30 AM] decimal(10, 2), 
    [12:45 AM] decimal(10, 2), 
    [1:00 AM] decimal(10, 2), 
    [1:15 AM] decimal(10, 2) 
); 


insert into Photonics values 
('2012-01-01', 239.04, 247.68, 253.44, 254.88, 253.44), 
('2012-01-02', 247.68, 249.12, 246.24, 234.72, 230.40), 
('2012-01-03', 259.20, 257.76, 254.88, 243.36, 244.80), 
('2012-01-04', 270.72, 269.28, 256.32, 249.12, 253.44), 
('2012-01-05', 257.76, 254.88, 263.52, 269.28, 272.16) 

這是Upovit SQL代碼

select 'Photonics' name, 
    timestamp = dt + cast(timestamp as datetime), 
    value 
from photonics p 
unpivot 
(
    value 
    for timestamp in ([12:15 AM], [12:30 AM], [12:45 AM], [1:00 AM], [1:15 AM]) 
) unpiv; 

的時間戳diplayed爲以下幾點:

2012-01-01 00:15:00.000 
2012-01-01 00:30:00.000 
2012-01-01 00:45:00.000 
2012-01-01 01:00:00.000 
2012-01-01 01:15:00.000 

我想時間戳顯示爲:

我試過了GETDATE,我所有的嘗試都失敗了。我只想提一下,我沒有寫上面的代碼,很多感謝bluefeet的幫助。

+1

您正在運行的是哪個版本的SQL Server? –

回答

1

您可以使用下面的轉換日期:

timestamp 
= convert(varchar(10), dt, 103) +' '+ 
    convert(varchar(5), cast(timestamp as datetime), 114) 

製作完整的查詢:

select 'Photonics' name, 
    timestamp 
    = convert(varchar(10), dt, 103) +' '+ 
     convert(varchar(5), cast(timestamp as datetime), 114), 
    value 
from photonics p 
unpivot 
(
    value 
    for timestamp in ([12:15 AM], [12:30 AM], [12:45 AM], [1:00 AM], [1:15 AM]) 
) unpiv; 

SQL Fiddle with Demo。請參閱SQL Server date formats的列表

+0

非常感謝你bluefeet我真的很感激。 –

相關問題