自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2008中的創(chuàng)建格式化日期

數(shù)據(jù)庫 MySQL
不同的國家要求不同的日期格式。不同的應(yīng)用程序要求不同的日期格式。SQL Server數(shù)據(jù)庫管理員和開發(fā)人員將函數(shù)convert()和其它日期函數(shù)例如datepart()、datename()等等一起使用來操縱輸出的格式。

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

  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)景來看看這個(gè)函數(shù)的使用。下面關(guān)鍵字中的任何一個(gè)都可以聯(lián)合使用來顯示不同格式的日期。

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開始

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

LCASE - 以小寫顯示結(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í)制來顯示,那么執(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í)制來顯示,那么執(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 的形式來顯示日期,那么執(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í)間以你可以使用它來作為文件名稱后綴的形式,那么執(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í)間偏移量來顯示日期、時(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

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

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

結(jié)果:

Date

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

2009-JAN-12

場(chǎng)景18

要顯示帶有小寫的月份名稱的日期,那么執(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ù)來獲得不同國家和應(yīng)用程序所要求的大多數(shù)日期格式。

【編輯推薦】

  1. 在T-SQL中使用臨時(shí)表的注意事項(xiàng)
  2. SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句(1)
  3. 用T-SQL操作面試SQL Server開發(fā)人員(1)
  4. SQL Server 2005中的T-SQL
  5. T-SQL實(shí)用例句
責(zé)任編輯:冰荷 來源: ctocio
相關(guān)推薦

2010-07-19 13:00:34

SQL Server日

2010-06-28 10:45:44

Sql Server日

2010-07-08 16:21:46

Sql Server

2010-10-19 16:48:23

Sql Server日

2010-07-19 08:45:45

SQL Server

2010-07-09 13:59:53

Sql Server日

2010-09-06 15:17:14

Sql函數(shù)

2010-10-28 15:32:42

oracle日期格式化

2010-07-29 11:12:30

Flex日期格式化

2009-08-03 14:25:59

C#日期格式化

2010-09-10 15:32:53

SQL函數(shù)日期格式化

2009-07-30 16:23:07

C#日期格式化

2010-09-16 13:22:03

Sql Server日

2009-09-04 12:22:41

C#日期格式化

2009-04-16 17:44:31

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2009-08-03 16:24:05

C#格式化

2009-07-30 16:40:03

C#日期格式化

2009-09-03 14:20:21

C#日期格式化

2010-07-29 10:48:28

Flex日期格式化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)