? ? ? ? ?執(zhí)行下面格式化時(shí)間和日期的T-SQL腳本,在數(shù)據(jù)庫(kù)查詢分析器中示范了SQL Server中的大多數(shù)可用的時(shí)間數(shù)據(jù)格式
SELECT ? convert ( varchar ,? getdate (),? 100 )? -- ?mon?dd?yyyy?hh:mmAM?(or?PM)-- 10 ? 31 ? 2011 ? 11 :33PM
SELECT ? convert ( varchar ,? getdate (),? 101 )? -- ?mm/dd/yyyy?-?10/31/2011
SELECT ? convert ( varchar ,? getdate (),? 103 )? -- ?dd/mm/yyyy--31/10/2011
SELECT ? convert ( varchar ,? getdate (),? 104 )? -- ?dd.mm.yyyy--31.10.2011
SELECT ? convert ( varchar ,? getdate (),? 105 )? -- ?dd-mm-yyyy--31-10-2011
SELECT ? convert ( varchar ,? getdate (),? 106 )? -- ?dd?mon?yyyy--31?10?2011
SELECT ? convert ( varchar ,? getdate (),? 107 )? -- ?mon?dd,?yyyy--10?31,?2011
SELECT ? convert ( varchar ,? getdate (),? 108 )? -- ?hh:mm:ss--23:36:24
SELECT ? convert ( varchar ,? getdate (),? 109 )? -- ?mon?dd?yyyy?hh:mm:ss:mmmAM?(or?PM)
-- ?10?31?2011?11:36:24:797PM
SELECT ? convert ( varchar ,? getdate (),? 110 )? -- ?mm-dd-yyyy--10-31-2011
SELECT ? convert ( varchar ,? getdate (),? 111 )? -- ?yyyy/mm/dd--2011/10/31
SELECT ? convert ( varchar ,? getdate (),? 112 )? -- ?yyyymmdd--20111031
SELECT ? convert ( varchar ,? getdate (),? 113 )? -- ?dd?mon?yyyy?hh:mm:ss:mmm
-- ?31?10?2011?23:36:24:797
SELECT ? convert ( varchar ,? getdate (),? 114 )? -- ?hh:mm:ss:mmm(24h)--23:36:24:797
SELECT ? convert ( varchar ,? getdate (),? 120 )? -- ?yyyy-mm-dd?hh:mm:ss(24h)--2011-10-31?23:36:24
SELECT ? convert ( varchar ,? getdate (),? 121 )? -- ?yyyy-mm-dd?hh:mm:ss.mmm--2011-10-31T23:36:24.797
SELECT ? convert ( varchar ,? getdate (),? 126 )? -- ?yyyy-mm-ddThh:mm:ss.mmm--2011-10-31T23:36:24.797
SELECT ? convert ( varchar ( 7 ),? getdate (),? 126 )? -- ?yyyy-mm???--2011-10
SELECT ? right ( convert ( varchar ,? getdate (),? 106 ),? 8 )? -- ?mon?yyyy--?10?2011
CREATE ? FUNCTION ?dbo.fnFormatDate?( @Datetime ? DATETIME ,? @FormatMask ? VARCHAR ( 32 )) RETURNS ? VARCHAR ( 32 )
AS
BEGIN
DECLARE
?
@StringDate
?
VARCHAR
(
32
)
SET
?
@StringDate
?
=
?
@FormatMask
IF
?(
CHARINDEX
?(
'
YYYY
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
YYYY
'
,
DATENAME
(YY,?
@Datetime
))
IF
?(
CHARINDEX
?(
'
YY
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
YY
'
,
RIGHT
(
DATENAME
(YY,?
@Datetime
),
2
))
IF
?(
CHARINDEX
?(
'
Month
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
Month
'
,
DATENAME
(MM,?
@Datetime
))
IF
?(
CHARINDEX
?(
'
MON
'
,
@StringDate
?COLLATE?SQL_Latin1_General_CP1_CS_AS)
>
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
MON
'
,
LEFT
(
UPPER
(
DATENAME
(MM,?
@Datetime
)),
3
))
IF
?(
CHARINDEX
?(
'
Mon
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
Mon
'
,
LEFT
(
DATENAME
(MM,?
@Datetime
),
3
))
IF
?(
CHARINDEX
?(
'
MM
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
MM
'
,
RIGHT
(
'
0
'
+
CONVERT
(
VARCHAR
,
DATEPART
(MM,?
@Datetime
)),
2
))
IF
?(
CHARINDEX
?(
'
M
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
M
'
,
CONVERT
(
VARCHAR
,
DATEPART
(MM,?
@Datetime
)))
IF
?(
CHARINDEX
?(
'
DD
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
DD
'
,
right
(
'
0
'
+
DATENAME
(DD,?
@Datetime
),
2
))
IF
?(
CHARINDEX
?(
'
D
'
,
@StringDate
)?
>
?
0
)
SET
?
@StringDate
?
=
?
REPLACE
(
@StringDate
,?
'
D
'
,
DATENAME
(DD,?
@Datetime
))
RETURN
?
@StringDate
END
GO
? 以前每次格式化日期都要通過(guò)字符串轉(zhuǎn)換函數(shù)是轉(zhuǎn)換,比較麻煩,像這樣寫成函數(shù)調(diào)用起來(lái)就方便多了:
示例:?
SELECT ?dbo.fnFormatDate?( getdate (),? ' MM/DD/YYYY ' )?? -- 10/31/2011
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
