web-dev-qa-db-ja.com

SQL Serverの日付形式yyyymmdd

一部の値がmm/dd/yyyy形式であり、一部がvarcharであるyyyymmdd列があります。

すべてのmm/dd/yyyy日付をyyyymmdd形式に変換したい。これを行う最良の方法は何ですか?ありがとう

テーブルはEmployeesで、列はDOBです

9
Kevin M

「日付」列が実際には日付ではないと仮定します。

Select convert(varchar(8),cast('12/24/2016' as date),112)

または

Select format(cast('12/24/2016' as date),'yyyyMMdd')

返却値

20161224
23
DECLARE @v DATE= '3/15/2013'

SELECT CONVERT(VARCHAR(10), @v, 112)

任意の日付形式または日付時刻形式を区切り文字なしでYYYYMMDDに変換できます

6
Daniel

これを試して....

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees;
3

SQL Serverでは、次のことができます。

select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col)

これにより、変換が試行され、使用可能な場合は以前の値が保持されます。

注:日付を文字列ではなく日付として保存することについてのレッスンを学んだことを願っています。

1
Gordon Linoff
Select CONVERT(VARCHAR(8), GETDATE(), 112)

SQL Server 2012でテスト済み

https://www.w3schools.com/sql/func_sqlserver_convert.asp

0
rchacko

SELECT YEAR(getdate())* 10000 + MONTH(getdate())* 100 + DAY(getdate())

0
Varun