web-dev-qa-db-ja.com

SQL Serverは文字列を日時に変換します

これは、MSSQLで this question などの任意の文字列をdatetimeに変換する方法を尋ねているわけではありません。

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

43
NeilG

たとえば、使用できます

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'

年が最初に指定されていない場合、これは言語に依存するため、日/月の順序に注意する必要があります。 year firstを指定した場合、問題はありません。日付の順序は常に年月日です。

26
NeilG
UPDATE MyTable SET MyDate = CONVERT(datetime, '2009/07/16 08:28:01', 120)

CASTとCONVERTの詳細な説明(さまざまな日付形式オプションを含む)については、以下のMSDNライブラリリンクを参照してください。

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

101
Bork Blatt