簡體   English   中英

如何將日期轉換為格式為“mm / dd / yyyy”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM