[英]Validating date format dd-mmm-yyyy and dd mmm yyyy in SQL Server
[英]Convert Date format into DD/MMM/YYYY format in SQL Server
我在SQL
有一個查詢,我必須以dd/mm/yy
格式獲取日期
示例: 25/jun/2013
。
如何convert
其convert
為SQL server
?
我不確定您想要的格式是否完全匹配。 但是你可以接近convert()
和 style 106
。 然后,替換空格:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
SQL server 2008 已經有多種答案和格式類型。但是這種方法有些含糊,您很難記住特定日期格式的數字。 這就是為什么在下一版本的 SQL Server 中有更好的選擇。
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 服務器的日期格式,你應該訪問:
嘗試使用以下查詢。
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)
第三個參數是格式,范圍是100
到114
,任何一個都適合你。
如果您需要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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.