2009-07-16 17 views
38

これは、this questionのような任意の文字列をMSSQLのdatetimeに変換する方法を尋ねるものではありません。SQL Serverからdatetimeに変換する

文字列形式を制御できますが、日付文字列を使用してdatetimeフィールドを更新するためのMSSQL構文を知りたいとします。例えば

答えて

17

あなたは、年が最初に指定されていない場合、これは言語に依存になりますので、あなたは日/月の順に注意する必要があり

update tablename set datetimefield='19980223 14:23:05' 
update tablename set datetimefield='02/23/1998 14:23:05' 
update tablename set datetimefield='1998-12-23 14:23:05' 
update tablename set datetimefield='23 February 1998 14:23:05' 
update tablename set datetimefield='1998-02-23T14:23:05' 

を使用することができます。 年を最初に指定した場合は、に問題はありません。日付の順序は常に年月日になります。

+3

+1を:) – Thorarin

+5

- 1。年初はy-m-dを保証しません。 SET LANGUAGE british GO SELECT CAST( '2009-02-28 AS datetime)、CAST(2009-02-28 01:02:03' AS datetime) - 両方が失敗する – gbn

+2

「日付」とyyyy-mm-ddが動作する前のSQL Server 2008。 – gbn

97
UPDATE MyTable SET MyDate = CONVERT(datetime, '2009/07/16 08:28:01', 120) 
CASTの完全な説明については

と異なる日付の書式設定オプションを含め、CONVERT、下記のMSDNライブラリのリンクを参照してください。YYYY-MM-DDのため

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

+1

リンクの+1。非常に役立ちます。 –

+1

私はOPの質問ではありませんでしたが、私が検索していた質問に答えるために+1 :) – Kalessin

関連する問題