一部の値がmm/dd/yyyy
形式であり、一部がvarchar
であるyyyymmdd
列があります。
すべてのmm/dd/yyyy
日付をyyyymmdd
形式に変換したい。これを行う最良の方法は何ですか?ありがとう
テーブルはEmployees
で、列はDOB
です
「日付」列が実際には日付ではないと仮定します。
Select convert(varchar(8),cast('12/24/2016' as date),112)
または
Select format(cast('12/24/2016' as date),'yyyyMMdd')
返却値
20161224
DECLARE @v DATE= '3/15/2013'
SELECT CONVERT(VARCHAR(10), @v, 112)
任意の日付形式または日付時刻形式を区切り文字なしでYYYYMMDDに変換できます
これを試して....
SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees;
SQL Serverでは、次のことができます。
select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col)
これにより、変換が試行され、使用可能な場合は以前の値が保持されます。
注:日付を文字列ではなく日付として保存することについてのレッスンを学んだことを願っています。
Select CONVERT(VARCHAR(8), GETDATE(), 112)
SQL Server 2012でテスト済み
SELECT YEAR(getdate())* 10000 + MONTH(getdate())* 100 + DAY(getdate())