日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQLServer2008中的創(chuàng)建格式化日期

讓我們來(lái)創(chuàng)建dbo.format_date 函數(shù),如下所示。

創(chuàng)新互聯(lián)是一家專業(yè)提供太白企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、HTML5、小程序制作等業(yè)務(wù)。10年已為太白眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

 
 
 
  1. /****** Object: UserDefinedFunction [dbo].[format_date]   
  2. Script Date: 05/12/2009 23:19:35 ******/  
  3.  
  4. IF EXISTS (SELECT * FROM sys.objects  
  5.  
  6. WHERE object_id = OBJECT_ID(N'[dbo].[format_date]')  
  7.  
  8. AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))  
  9.  
  10. DROP FUNCTION [dbo].[format_date]  
  11.  
  12. GO  
  13.  
  14. /****** Object: UserDefinedFunction [dbo].[format_date]  
  15.  
  16. Script Date: 05/12/2009 23:19:18 ******/  
  17.  
  18. SET ANSI_NULLS ON 
  19.  
  20. GO  
  21.  
  22. SET QUOTED_IDENTIFIER ON 
  23.  
  24. GO  
  25.  
  26. SET CONCAT_NULL_YIELDS_NULL OFF 
  27.  
  28. go  
  29.  
  30. CREATE function [dbo].[format_date]  
  31.  
  32. (@inputdate datetime ,@format varchar(500))  
  33.  
  34. returns varchar(500)  
  35.  
  36. as 
  37.  
  38. begin 
  39.  
  40. declare @year varchar(4) --YYYY  
  41.  
  42. declare @shortyear varchar(4) --Yr  
  43.  
  44. declare @quarter varchar(4) --QQ  
  45.  
  46. declare @month varchar(2) --MM  
  47.  
  48. declare @week varchar(2) --WW  
  49.  
  50. declare @day varchar(2) --DD  
  51.  
  52. declare @24hours varchar(2) --24HH  
  53.  
  54. declare @12hours varchar(2) --HH  
  55.  
  56. declare @minutes varchar(2) --MI  
  57.  
  58. declare @seconds varchar(2) --SS  
  59.  
  60. declare @milliseconds varchar(3) --MS  
  61.  
  62. declare @microseconds varchar(6) --MCS  
  63.  
  64. declare @nanoseconds varchar(9) --NS  
  65.  
  66. declare @dayname varchar(15) --DAY  
  67.  
  68. declare @monthname varchar(15) --MONTH  
  69.  
  70. declare @shortmonthname varchar(15) --MON  
  71.  
  72. declare @AMPM varchar(15) --AMPM  
  73.  
  74. declare @TZ varchar(15) --TZ  
  75.  
  76. declare @UNIXPOSIX varchar(15) --UNIXPOSIX  
  77.  
  78. --UCASE  
  79.  
  80. --LCASE  
  81.  
  82. declare @formatteddate varchar(500)  
  83.  
  84. --Assign current date and time to  
  85.  
  86. if (@inputdate is NULL or @inputdate ='')  
  87.  
  88. begin 
  89.  
  90. set @inputdate = getdate()  
  91.  
  92. end 
  93.  
  94. if (@format is NULL or @format ='')  
  95.  
  96. begin 
  97.  
  98. set @format ='YYYY-MM-DD 12HH:MI:SS AMPM' 
  99.  
  100. end 

#p#

 
 
 
  1. --set all values   
  2. set @year = convert(varchar(4),year(@inputdate))  
  3.  
  4. set @shortyear = right(@year,2)  
  5.  
  6. set @quarter = convert(varchar(1),datepart(QQ,(@inputdate)))  
  7.  
  8. set @month = right('0'+convert(varchar(2),month(@inputdate)),2)  
  9.  
  10. set @week = right('0'+convert(varchar(2),datepart(ww,(@inputdate))),2)  
  11.  
  12. set @day = right('0'+convert(varchar(2),day(@inputdate)),2)  
  13.  
  14. set @24hours = right('0'+convert(varchar(2),datepart(hh,@inputdate)),2)  
  15.  
  16. set @TZ = convert(varchar(10),datename(TZ,convert(varchar(20),@inputdate)))  
  17.  
  18. set @UNIXPOSIX = convert(varchar(15),datediff(ss,convert(datetime,'01/01/1970 00:00:000'),@inputdate))  
  19.  
  20. if datepart(hh,@inputdate) >12  
  21.  
  22. begin 
  23.  
  24. set @12hours = right('0'+convert(varchar(2),datepart(hh,@inputdate)) -12,2)  
  25.  
  26. end 
  27.  
  28. else 
  29.  
  30. begin 
  31.  
  32. set @12hours = right('0'+convert(varchar(2),datepart(hh,@inputdate)) ,2)  
  33.  
  34. end 
  35.  
  36. if datepart(hh,@inputdate) >11  
  37.  
  38. begin 
  39.  
  40. set @AMPM ='PM' 
  41.  
  42. end 
  43.  
  44. else 
  45.  
  46. begin 
  47.  
  48. set @AMPM ='AM' 
  49.  
  50. end 
  51.  
  52. set @minutes = right('0'+convert(varchar(2),datepart(n,@inputdate)),2)  
  53.  
  54. set @seconds = right('0'+convert(varchar(2),datepart(ss,@inputdate)),2)  
  55.  
  56. set @milliseconds = convert(varchar(3),datepart(ms,@inputdate))  
  57.  
  58. set @microseconds = convert(varchar(6),datepart(mcs,@inputdate))  
  59.  
  60. set @nanoseconds = convert(varchar(9),datepart(ns,@inputdate))  
  61.  
  62. set @dayname = datename(weekday,@inputdate)  
  63.  
  64. set @monthname = datename(mm,@inputdate)  
  65.  
  66. set @shortmonthname= left(datename(mm,@inputdate),3)  
  67.  
  68. set @formatteddate = @format  
  69.  
  70. set @formatteddate=replace(@formatteddate,'MONTH',@monthname)  
  71.  
  72. set @formatteddate=replace(@formatteddate,'MON',@shortmonthname)  
  73.  
  74. set @formatteddate=replace(@formatteddate,'AMPM',@AMPM)  
  75.  
  76. set @formatteddate=replace(@formatteddate,'YYYY',@year)  
  77.  
  78. set @formatteddate=replace(@formatteddate,'Yr',@shortyear)  
  79.  
  80. set @formatteddate=replace(@formatteddate,'QQ',@quarter)  
  81.  
  82. set @formatteddate=replace(@formatteddate,'WW',@week)  
  83.  
  84. set @formatteddate=replace(@formatteddate,'MM',@month)  
  85.  
  86. set @formatteddate=replace(@formatteddate,'DD',@Day)  
  87.  
  88. set @formatteddate=replace(@formatteddate,'24HH',@24hours)  
  89.  
  90. set @formatteddate=replace(@formatteddate,'12HH',@12hours)  
  91.  
  92. set @formatteddate=replace(@formatteddate,'Mi',@minutes)  
  93.  
  94. set @formatteddate=replace(@formatteddate,'SS',@seconds)  
  95.  
  96. set @formatteddate=replace(@formatteddate,'MS',@milliseconds)  
  97.  
  98. set @formatteddate=replace(@formatteddate,'MCS',@microseconds)  
  99.  
  100. set @formatteddate=replace(@formatteddate,'NS',@nanoseconds)  
  101.  
  102. set @formatteddate=replace(@formatteddate,'DAY',@dayname)  
  103.  
  104. set @formatteddate=replace(@formatteddate,'TZ',@TZ)  
  105.  
  106. set @formatteddate=replace(@formatteddate,'UNIXPOSIX',@UNIXPOSIX)  
  107.  
  108. if charindex('ucase',@formatteddate)<>0  
  109.  
  110. begin 
  111.  
  112. set @formatteddate=replace(@formatteddate,'ucase','')  
  113.  
  114. set @formatteddate=upper(@formatteddate)  
  115.  
  116. end 
  117.  
  118. if charindex('lcase',@formatteddate)<>0   
  119.  
  120. begin 
  121.  
  122. set @formatteddate=replace(@formatteddate,'lcase','')  
  123.  
  124. set @formatteddate=lower(@formatteddate)  
  125.  
  126. end 
  127.  
  128. return @formatteddate  
  129.  
  130. end 
  131.  
  132. GO  

#p#

現(xiàn)在讓我們使用不同的場(chǎng)景來(lái)看看這個(gè)函數(shù)的使用。下面關(guān)鍵字中的任何一個(gè)都可以聯(lián)合使用來(lái)顯示不同格式的日期。

YYYY - YYYY格式的年份,包括百年

Yr - YY格式的年份

QQ - 顯示季度

MM - 顯示月份

WW - 顯示星期

DD - 顯示日子

24HH - 以24小時(shí)制的形式顯示小時(shí)

12HH - 以12小時(shí)制的形式顯示小時(shí)

MI - 顯示分鐘

SS - 顯示秒

MS - 顯示毫秒

MCS - 顯示微秒

NS - 顯示十億分之一秒

DAY - 顯示日子的名稱,例如:Monday

MONTH- - 顯示月份的名稱,例如:August

MON - 顯示短的月份名稱,例如:Aug

AMPM - 顯示AM/PM 用于12小時(shí)制格式

TZ - 顯示時(shí)間偏移

UNIXPOSIX - 顯示unix posix時(shí)間。秒數(shù)從1/1/1970開(kāi)始

UCASE - 以大寫(xiě)顯示結(jié)果

LCASE - 以小寫(xiě)顯示結(jié)果

場(chǎng)景 1

如果你想以YYYY/MM/DD的形式顯示日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY/MM/DD') as Date

結(jié)果:

Date

--------------

2009/01/12

場(chǎng)景 2

要以YYYY-MM-DD格式顯示日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY-MM-DD') as Date

結(jié)果:

Date

-------------------

2009-01-12

場(chǎng)景 3

要顯示年份和季節(jié),那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'Year: YYYY, Quarter: QQ ') as Date

結(jié)果:

Date

-----------------------

Year: 2009, Quarter: 1

場(chǎng)景 4

要以24小時(shí)制格式顯示時(shí)間,執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'24HH:MI:SS') as Time

結(jié)果:

Time

------------------------

23:10:07

場(chǎng)景 5

要以12小時(shí)制格式顯示時(shí)間,執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'12HH:MI:SS AMPM') as Time

結(jié)果:

Time

-----------------------

11:11:02 PM

#p#

場(chǎng)景 6

要以日期形式為YYYY/MM/DD 和時(shí)間形式為24小時(shí)制來(lái)顯示,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY/MM/DD 24HH:MI:SS') as DateTime

結(jié)果:

DateTime

-----------------------

2009/01/12 23:11:44

場(chǎng)景 7

要以日期形式為YYYY/MM/DD和時(shí)間形式為12小時(shí)制來(lái)顯示,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY/MM/DD 12HH:MI:SS AMPM') as DateTime

結(jié)果:

DateTime

-------------------------

2009/01/12 11:13:27 PM

場(chǎng)景 8

要以DD-MM-YY 的形式來(lái)顯示日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'DD-MM-YR') as Date

結(jié)果:

Date

------------------------

12-01-09

場(chǎng)景 9

要以DDMMYY的形式顯示日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'DDMMYR') as Date

結(jié)果:

Date

----------------------

120109

場(chǎng)景 10

要顯示日期和時(shí)間以你可以使用它來(lái)作為文件名稱后綴的形式,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY_MM_DD_HH_MI_SS_MS_MCS_NS') as FileNameSuffix

結(jié)果:

FileNameSuffix

--------------------------------------------

2009_01_12_HH_16_18_200_200000_200000000

場(chǎng)景 11

要顯示日期、時(shí)間、月份名稱和日子的名稱,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'DAY, MONTH DD, YYYY 12HH:MI:SS AMPM') as DateTime

結(jié)果:

DateTime

---------------------------------------

Monday, January 12, 2009 11:20:31 PM

場(chǎng)景 12

要以時(shí)間偏移量來(lái)顯示日期、時(shí)間、月份名稱和日子的名稱,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'DAY MONTH DDth, YR 12HH:MI:SS TZ') as DateTime

結(jié)果:

DateTime

------------------------------------------

Monday January 12th, 09 11:21:42 +00:00

#p#

場(chǎng)景 13

要顯示unix posix時(shí)間,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'Your Unix time is: UNIXPOSIX') as POSIX

結(jié)果:

POSIX

----------------------------------

Your Unix time is: 1231802580

場(chǎng)景 14

要顯示年份和星期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'Year: YYYY, Week: WW') as YearWeek

結(jié)果:

YearWeek

-------------------------

Year: 2009, Week: 03

場(chǎng)景15

要顯示帶有月份名稱的日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY-MONTH-DD') as Date

結(jié)果:

Date

--------------------------

2009-January-12

場(chǎng)景16

要顯示帶有短的月份名稱的日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY-MON-DD') as Date

結(jié)果:

Date

------------------------

2009-Jan-12

場(chǎng)景17

要顯示帶有大寫(xiě)的短的月份名稱的日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY-MON-DD ucase') as Date

結(jié)果:

Date

----------------------

2009-JAN-12

場(chǎng)景18

要顯示帶有小寫(xiě)的月份名稱的日期,那么執(zhí)行下面的命令。

select dbo.format_date(GETDATE(),'YYYY-MONTH-DD lcase') as Date

結(jié)果:

Date

-------------------

2009-january-12

場(chǎng)景19

如果你不傳遞參數(shù),那么這個(gè)函數(shù)使用默認(rèn)的格式化日期和時(shí)間的方法。執(zhí)行下面的命令:

select dbo.format_date(NULL,NULL)

select dbo.format_date(NULL,'YYYY')

select dbo.format_date(getdate(),NULL)

結(jié)果:

Date

-----------------------

2009-01-12 11:29:17 PM

Year

-----------------------

2009

Date

-----------------------

2009-01-12 11:29:17 PM

這篇文章介紹了怎樣創(chuàng)建一個(gè)命令函數(shù)來(lái)獲得不同國(guó)家和應(yīng)用程序所要求的大多數(shù)日期格式。


本文題目:SQLServer2008中的創(chuàng)建格式化日期
鏈接URL:http://www.dlmjj.cn/article/cccjejc.html