2

varchar のような列 exit_date が5/21/2008 0:00あり、それを のような文字列に更新する必要がありますYYYYMMDD。それを行う方法はありますか?

5/21/2008 0:00  ==> 20080521  
1/1/2007 0:00   ==> 20070101

のようなことをする方法

select convert('5/21/2008 0:00', 'YYYYMMDD').
4

4 に答える 4

4

CONVERT では、datetime/varchar を両方向に変換するためのスタイルを使用できます。そうは言っても、リストにない形式があります。そして、実際には2つの変換もあります.最初にdatetimeに変換する必要があります.

デフォルトの「us_english」設定を持つ私のローカル SQL インストールでは、これはそのまま使用できます

select convert(datetime, '5/21/2008 0:00')

したがって

select convert(char(8), convert(datetime, '5/21/2008 0:00'), 112)

SET LANGUAGE を使用して一時的に us_english に変更できます

于 2011-01-30T10:57:56.413 に答える
2

http://www.sql-server-helper.com/tips/date-formats.aspx にアクセスしてください

于 2011-01-30T08:45:31.920 に答える
1

.Net スタイルのフォーマット マスクを使用して T-SQL で日付変換をサポートする関数をブログに投稿しました。ブログなどをプラグインしようとしているのではなく、コード スニペットを投稿するだけです。

私の機能SELECT dbo.fnc_FormatDate(getdate(), 'YYYYMMDD')を使用すると、あなたが望むことができます。

http://bitmugger.blogspot.com/2011/07/convert-t-sql-datetime-to-strings-using.html

于 2011-07-06T17:10:34.780 に答える
1

変換が必要なのがvarchar 列であることを最初は知りませんでした。

したがって、ギドンの回答に対するコメントで述べたように、基本的には次のようにする必要がありますCONVERT(varchar(8), CAST(your_varchar_date AS datetime), 112)

値をその場で変換する場合、それを適用する方法のより完全な例を次に示します。

UPDATE your_table
SET exit_date = CONVERT(varchar(8), CONVERT(datetime, exit_date), 112)
于 2011-01-30T11:39:25.750 に答える