yyyyMMddhh
(2017092018
)文字列をSQL Server 2012のDate
に変換する方法はありますか?SQL Serverのカスタム文字列を日付に変換する方法
T-SQLを使用せずに文章をINSERT
句に入れることはできますか?
INSERT INTO [dbo].[Table](SomeColumn)
VALUES (CONVERT(DATETIME, '2017092018', 'yyyyMMddhh'));
yyyyMMddhh
(2017092018
)文字列をSQL Server 2012のDate
に変換する方法はありますか?SQL Serverのカスタム文字列を日付に変換する方法
T-SQLを使用せずに文章をINSERT
句に入れることはできますか?
INSERT INTO [dbo].[Table](SomeColumn)
VALUES (CONVERT(DATETIME, '2017092018', 'yyyyMMddhh'));
例
Declare @S varchar(50)='2017092018'
Select convert(datetime,left(@S,8)) + convert(datetime,right(@S,2)+':00')
戻り
2017-09-20 18:00:00.000
2012+の場合、私はあなたには、いくつかの予期しない値を持っているだけの場合)(try_convertをお勧めします。
+1でなければなりません。私は矛盾した答えを投稿したくなかったが、私は別のアプローチを考え出した。 dateadd(時、変換(int、右(@s、2))、左(@s、8)) –
@SeanLange投稿するそれはSOの美しさです...オプション –
ありがとう、私は期待していたが、変換する文字列はありません日付=マスク( –
あなたはDATETIMEFROMPARTS
使用することができます
DECLARE @d NVARCHAR(10)='2017092018';
SELECT DATETIMEFROMPARTS(LEFT(@d,4),SUBSTRING(@d,5,2),SUBSTRING(@d,7,2),RIGHT(@d,2),0,0,0) ;
EDIT:
別のオプション:
DECLARE @S varchar(10)='2017092018'
SELECT CAST(LEFT(@s, 8) AS DATETIME) + RIGHT(@s,2)/24.0;
代替アプローチ:
DECLARE @val VARCHAR(25) = '2017092018';
SELECT CONVERT(DATETIME,STUFF(@val, 9, 0, ' ') + ':00')
これは時間の前にスペースを追加し、その後、分値のため:00
を追加します。
すでに+1 ...受け入れられた回答でなければなりません。 –
@JohnCappelletti多くの方法で猫を肌に触れることができます。 – Tanner
'T-SQLを使用せずに文章をINSERT句に入れることはできますか? ' - 私はここにあなたが何を求めているのかよくわかりません... – Siyual
sqlで文字列パラメータで関数を作成して返します日付。さまざまなカスタム日付形式で機能を実行することもできます。 – OnurBulbul
文字列は常に正確な形式ですか?常に同じ文字数ですか? – Siyual