nvarchar
列をに変換するには、T-SQLDATETIME
の関数を使用する必要があります。CONVERT
この関数は、一連の「スタイル」をサポートします。これらはすべて、MSDNで非常によく文書化されています。
ソース文字列がこれらの定義されたスタイルの1つと一致する場合は、適切な文字列を使用して文字列からCONVERT
を取得できDATETIME
ます。ただし、T-SQLには、どの変換スタイルが文字列に一致するかを認識する「魔法」はありません。これは完全にあなた次第です。
ここでこのクエリを使用すると、CONVERT
T-SQLのすべてのスタイルを一覧表示できます。
DECLARE @Today DATETIME = GETDATE()
SELECT
Default_100 = CONVERT(VARCHAR(50), @Today, 100),
US_101 = CONVERT(VARCHAR(50), @Today, 101),
ANSI_102 = CONVERT(VARCHAR(50), @Today, 102),
BritishFrench_103 = CONVERT(VARCHAR(50), @Today, 103),
Germany_104 = CONVERT(VARCHAR(50), @Today, 104),
Italian_105 = CONVERT(VARCHAR(50), @Today, 105),
Style106 = CONVERT(VARCHAR(50), @Today, 106),
Style107 = CONVERT(VARCHAR(50), @Today, 107),
Style108 = CONVERT(VARCHAR(50), @Today, 108),
Default_with_ms_109 = CONVERT(VARCHAR(50), @Today, 109),
USA_110 = CONVERT(VARCHAR(50), @Today, 110),
Japan_111 = CONVERT(VARCHAR(50), @Today, 111),
ISO_112 = CONVERT(VARCHAR(50), @Today, 112),
Europe_default_with_ms_113 = CONVERT(VARCHAR(50), @Today, 113),
Style114 = CONVERT(VARCHAR(50), @Today, 114),
ODBC_canonical_120 = CONVERT(VARCHAR(50), @Today, 120),
ODBC_canonical_with_ms_121 = CONVERT(VARCHAR(50), @Today, 121),
ISO_8601_126 = CONVERT(VARCHAR(50), @Today, 126),
ISO_8601_with_timezone_Z_127 = CONVERT(VARCHAR(50), @Today, 127),
Hijri_130 = CONVERT(VARCHAR(50), @Today, 130),
Hijri_131 = CONVERT(VARCHAR(50), @Today, 131)
ソース文字列が事前定義されたスタイルのいずれとも一致しない場合-運が悪いため、文字列を有効なに変換するには、さらに多くの文字列解析とT-SQLコードが必要になりますDATETIME
。
文字列がスタイルの1つと一致する場合は、次のように変換できます。
DECLARE @Date DATETIME
SET @Date = CONVERT(DATETIME, '30.04.2012', 104)