2013-07-10 2 views
0

У меня есть эта таблица,SQL Формат даты сервера в следующем 1/1/12 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 Code

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; 

отметка отображаемая как:

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

Спасибо большое, что я очень ценю это. –