[英]Teradata: how to convert varchar value (format 'dd.mm.yyyy') to date (format 'yyyy-mm-dd' )?
[英]how to convert date to a format `mm/dd/yyyy`
我有一個名為CREATED_TS
日期列的sql table
,它以不同的格式保存日期,例如。 如下所示
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Nov 16 2011 12:00AM
Feb 20 2012 12:00AM
11/29/12 8:20:52 PM
現在我想將這些格式轉換為格式mm\\dd\\yyyy
,因為我在比較SELECT
查詢的WHERE
子句中的日期。
我試過用
CONVERT(VARCHAR(10),CREATED_TS,101)
但得到了結果,
Feb 20 201
11/29/12
Feb 20 201
11/29/12
Feb 20 201
11/29/12
Nov 16 201
Feb 20 201
11/29/12
我需要結果,例如。 02/20/2012
為了比較。
任何幫助將不勝感激。
由於您的數據已經在varchar中,您必須先將其轉換為日期:
select convert(varchar(10), cast(ts as date), 101) from <your table>
使用Value
說明符為101
CONVERT
,同時將數據轉換為date
:
CONVERT(VARCHAR(10), CAST(Created_TS AS DATE), 101)
你在找這樣的東西嗎?
SELECT CASE WHEN LEFT(created_ts, 1) LIKE '[0-9]'
THEN CONVERT(VARCHAR(10), CONVERT(datetime, created_ts, 1), 101)
ELSE CONVERT(VARCHAR(10), CONVERT(datetime, created_ts, 109), 101)
END created_ts
FROM table1
輸出:
| CREATED_TS | |------------| | 02/20/2012 | | 11/29/2012 | | 02/20/2012 | | 11/29/2012 | | 02/20/2012 | | 11/29/2012 | | 11/16/2011 | | 02/20/2012 | | 11/29/2012 |
這是SQLFiddle演示
采用:
select convert(nvarchar(10), CREATED_TS, 101)
要么
select format(cast(CREATED_TS as date), 'MM/dd/yyyy') -- MySQL 3.23 and above
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.