web-dev-qa-db-ja.com

SQL ServerのVarcharからDatetimeへの変換

私はこの日付形式を持っています:2011-09-28 18:01:00(varchar)、この形式に変更する日付時刻に変換したい28-09-2011 18:01:00。どうすればいいですか?

45
HaOx
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime

SELECT CONVERT( VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00]
+ ' ' + SELECT CONVERT( VARCHAR(30), @date ,108 ) -- full date [with time/minutes/sec]
71
Zyku

このような

DECLARE @date DATETIME
SET @date = '2011-09-28 18:01:00'
select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108)

this Webサイトには、いくつかのフォーマットオプションが表示されます。

例:

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) 
8
Diego

すべての異なるスタイルをdatetime conversionにすることができます:

http://www.w3schools.com/sql/func_convert.asp

これには値の範囲があります:-

CONVERT(data_type(length),expression,style)

スタイル値の場合、
必要な人を選んでください106。

5
baymax

あなたはこの方法でそれを行うことができますが、それはvarcharとしてそれを残します

declare @s varchar(50)

set @s = '2011-09-28 18:01:00'

select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9)

または

select convert(varchar(20), @s, 105)
3
Taryn

前述したように、datetimeには形式/文字列表現形式はありません。

いくつかのフォーマットを使用して、文字列出力を変更できます。

文字列を日時に変換するには:

declare @date nvarchar(25) 
set @date = '2011-09-28 18:01:00' 

-- To datetime datatype
SELECT CONVERT(datetime, @date)

与える:

-----------------------
2011-09-28 18:01:00.000

(1 row(s) affected)

それを必要な文字列に変換するには:

-- To VARCHAR of your desired format
SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108)

与える:

-------------------
28-09-2011 18:01:00

(1 row(s) affected)
3
Paddy

以下をお試しください

select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl
3
Bala
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108)
3
Pankaj Agarwal

このWeb varcharを日付または日時に変換するための良い例があります

2