SQL Server 2000 テーブルの 1 つに、以下の形式の日付値があります。
10/1/2013 10:39:14 PM
10/1/2013 6:39:04 PM
10/1/2013 8:19:31 AM
10/1/2013 3:35:40 AM
以下に示すように、上記の形式のデータ値を 24 時間形式の日付形式に変換する方法
10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
SQL Server 2000 テーブルの 1 つに、以下の形式の日付値があります。
10/1/2013 10:39:14 PM
10/1/2013 6:39:04 PM
10/1/2013 8:19:31 AM
10/1/2013 3:35:40 AM
以下に示すように、上記の形式のデータ値を 24 時間形式の日付形式に変換する方法
10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
SQL Server 2012 では、Format 関数を使用して適切な日時形式を設定できます。24 時間形式の日付時刻には、大文字の「HH:mm:ss」を使用します。
例 -
クエリ (24 時間形式):
Select Format(cast('2016-03-03 23:59:59' as datetime),'dd-MMM-yyyy HH:mm:ss','en-us'). ('HH:mm:ss' in Capital letters)
結果
03-Mar-2016 23:59:59
クエリ (12 時間形式):
Select Format(cast('2016-03-03 23:59:59' as datetime),'dd-MMM-yyyy hh:mm:ss','en-us'). ('hh:mm:ss' in Capital letters)
結果
03-Mar-2016 11:59:59
これを試して:
varchar
最初に日付を変換してからdatetime
、次のように操作できます。
-- CONVERT TO DATETIME TO GET 24HR FORMAT
SELECT CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0)
-- Concatenate in required format
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 101)
+ ' '+ CONVERT(VARCHAR(5),CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 108)
Declare @s DateTime = '2012-12-26 11:00:00.000 PM'
select stuff(convert(varchar(19), @s, 126),11,1,' ')
declare @Hour_Part AS VARCHAR(50)
declare @Min_Part AS VARCHAR(50)
declare @Sec_Part AS VARCHAR(50)
declare @PMORAM AS VARCHAR(5)
SELECT @Hour_Part = DATEPART(HOUR,CONVERT(VARCHAR(50),GETDATE(),108))
SELECT @PMORAM = RIGHT(CONVERT(VARCHAR(30), GETDATE(), 9), 2)
IF @Hour_Part = 12 AND @PMORAM = 'AM'
BEGIN
SET @Hour_Part = '00'
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END
ELSE IF @Hour_Part > 0 AND @Hour_Part < 12 AND @PMORAM = 'PM'
BEGIN
SET @Hour_Part = @Hour_Part + 12
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END
ELSE
BEGIN
select @Min_Part = DATEPART(MINUTE,CONVERT(VARCHAR(50),GETDATE(),108))
select @Sec_Part = DATEPART(SECOND,CONVERT(VARCHAR(50),GETDATE(),108))
select @Hour_Part + ':' + @Min_Part + ':' + @Sec_Part AS DateTime24
END