簡體   English   中英

SQL Server中Date格式轉換為DD/MMM/YYYY格式

[英]Convert Date format into DD/MMM/YYYY format in SQL Server

我在SQL有一個查詢,我必須以dd/mm/yy格式獲取日期

示例: 25/jun/2013

如何convertconvertSQL server

我不確定您想要的格式是否完全匹配。 但是你可以接近convert()和 style 106 然后,替換空格:

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')

SQL server 2008 已經有多種答案和格式類型。但是這種方法有些含糊,您很難記住特定日期格式的數字。 這就是為什么在下一版本的 SQL Server 中有更好的選擇。

如果您使用的是 SQL Server 2012 或以上版本,則應使用Format() 函數

FORMAT ( value, format [, culture ] )

使用文化選項,您可以根據觀眾指定日期。

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 
  
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日
   

對於 OP 的解決方案,我們可以使用@Martin Smith 已經提到的以下格式:

FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')

一些示例日期格式:

在此處輸入圖片說明

如果你想要更多 SQL 服務器的日期格式,你應該訪問:

  1. 自定義日期和時間格式
  2. 標准日期和時間格式

我們可以將日期轉換為多種格式,例如

SELECT convert(varchar, getdate(), 106)

這將返回dd mon yyyy

更多在這里這可能對你有幫助

嘗試使用以下查詢。

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

結果: 20/6/13

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

結果: 20/Jun/2013

接受的答案已經在 2008 年使用內置格式方法提供了最佳解決方案。

應該注意的是,返回的結果取決於登錄的語言。

SET language Russian

SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 

退貨

06/апр/2015

在撰寫本文時。

對於在較新版本的 SQL Server 上遇到此問題的人來說,一種避免此問題的方法 - 並且需要REPLACE

FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')

在 2005+ 上,可以編寫一個接受日期時間、格式模式和文化的 CLR UDF 來模擬相同的內容。

試試這個

select convert(varchar,getdate(),100)

第三個參數是格式,范圍是100114 ,任何一個都適合你。

如果您需要dd/mmm/yyyy日期,請使用以下命令:

replace(convert(char(11),getdate(),113),' ','-')

getdate()替換為您的列名。 這對我有用。

您可以使用此查詢-

SELECT FORMAT (getdate(), 'dd/MMM/yy') as date

希望,此查詢對您有所幫助。

謝謝!!

試試這個 :

select replace ( convert(varchar,getdate(),106),' ','/')

任何試圖手動輸入日期到 sql server 'date type' 變量的人在輸入時使用此格式:

'yyyy-mm-dd'

轉換為日期后僅格式化(在 SQL Server v.2017 中測試)

dd/mon/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMM/yyyy')

dd/mm/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy')

dd/Month/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMMM/yyyy')

只需獲取日期並轉換

Declare @Date as Date =Getdate()

Select Format(@Date,'dd/MM/yyyy') as [dd/MM/yyyy] // output: 22/10/2020
Select Format(@Date,'dd-MM-yyyy') as [dd-MM-yyyy] // output: 22-10-2020

//string date
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy') as StringtoDate // output: 25/06/2013

來源: SQL server 日期格式和轉換(各種例子)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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