SQL Server日期格式为以下1/1/12 1:15个月/日/年小时:分钟

时间:2013-07-10 16:15:08

标签: sql sql-server getdate

我有这张桌子,

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;

时间戳显示如下:

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

我希望时间戳显示为:

1/1/12 0:15
1/1/12 0:30
1/1/12 0:45
1/1/12 1:00
1/1/12 1:15

我尝试了GETDATE并且所有尝试都失败了。我只是想提一下,我没有写上面的代码,非常感谢bluefeet的帮助。

1 个答案:

答案 0 :(得分: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

列表