sql server獲取當前日期


SqlServer中得到當前日期(convert函數,getdate函數)
函數GETDATE()的返回值在顯示時只顯示到秒。實際上,SQL Sever內部時間可以精確到毫秒級(確切地說,可以精確到3.33毫秒)。 ..類型0,9,和13總是返回四位的年。對其它類型,要顯示世紀,把style值加上100。類型13和14返回24小時時鍾的時間。類型0,7,和 13返回的月份用三位字符表示(用Nov代表November).
對表11.1中所列的每一種格式,你可以把類型值加上100來顯示有世紀的年(例如,00年將顯示為2000年)。例如,要按日本標准顯示日期,包括世紀,你應使用如下的語句:
SELECT CONVERT(VARCHAR(30),GETDATE(),111)
在這個例子中,函數CONVERT()把日期格式進行轉換,顯示為1997/11/30
要得到不同格式的日期和時間,你需要使用函數CONVERT()。例如,當下面的這個語句執行時,顯示的時間將包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中數字9的使用。這個數字指明了在顯示日期和時間時使用哪種日期和時間格式。當這個語句執行時,將顯示如下的日期和時間:
簡體中文OS:02   6 2007   4:33:56:530PM
英文OS:Nov 30 1997 3:29:55:170AM
convert函數中的style參數提供了datetime或smalldatetime轉換到char或varchar的多種日期顯示格式。 Style的數字參數決定日期被如何顯示。年可以被顯示成兩位數(yy),也可以顯示成4位數(yyyy)。例如,將style參數賦值為100,可以得 到一個4位的年號,即包括世紀值(yyyy).
下表列出了style參數的可用值及可以使用的各種日期格式。當同smalldatetime類型一起使用style參數時,那些包括秒和毫秒的格式將在其位值顯示零。
類型值          標准                                    輸出    
0               Default                                 mon dd yyyy hh:miAM    
1               USA                                     mm/dd/yy   
2               ANSI                                    yy.mm.dd   
3               British/French                          dd/mm/yy    
4               German                                  dd.mm.yy    
5               Italian                                 dd-mm-yy    
6               -                                       dd mon yy    
7               -                                       mon dd,yy    
8               -                                       hh:mi:ss   
9               Default + millisecondsR11;mon           dd yyyy hh:mi:ss:mmmAM(or )    
10              USA                                     mm-dd-yy    
11              JAPAN                                   yy/mm/dd    
12              ISO                                     yymmdd    
13              Europe                                  Default + millisecondsR11;dd mon yyyy    hh:mi:ss:mmm(24h)    
14              -                                       hh:mi:ss:mmm(24h)    
類型值前面加1,比如101 則顯示 mm/dd/yyyy  





---------------------------------------------------------------------------------
有時侯在數據庫的某些字段因特殊考慮的關系
這些字段是用char或nchar的格式來儲存日期

如果希望將這些字段中轉成一致的日期格式(如yyyy/mm/dd)
例如1988/1/1轉成1988/01/01的話
請試着參考以下的語法…

SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
FROM employee


其它格式轉換的范例如下:
--YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)
--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)
--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)
--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)




---------------------------------------------------------------------------------
如何用sql語言只獲得數據庫當前日期,且格式為"yyyy-mm-dd"?
select convert(char(10),getdate(),120)




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

--字符轉換為日期時,Style的使用

--1. Style=101時,表示日期字符串為:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',101)
--結果:2003-11-01 00:00:00.000

--2. Style=101時,表示日期字符串為:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)
--結果:2003-01-11 00:00:00.000



DECLARE @dt datetime
SET @dt='2003-1-11'

--1. Style=101時,表示將日期轉換為:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--結果:01/11/2003

--2. Style=103時,表示將日期轉換為:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--結果:11/01/2003



SELECT CONVERT(varchar,'2003-1-11',101)
--結果:2003-1-11

--1.

--示例 ,在下面的示例中,第一個CONVERT轉換未指定style,轉換的結果受SET DATAFORMAT的影響,第二個CONVERT轉換指定了style,轉換結果受style的影響。
--設置輸入日期順序為 日/月/年
SET DATEFORMAT DMY

--不指定Style參數的CONVERT轉換將受到SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005')
--結果: 2005-01-02 00:00:00.000

--指定Style參數的CONVERT轉換不受SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005',101)
--結果: 2005-02-01 00:00:00.000
GO

--2.

--示例,在下面的代碼中,同樣的SET DATEFORMAT設置,輸入日期的世紀部分與不輸入日期的世紀部分,解釋的日期結果不同。
DECLARE @dt datetime

--設置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY

--輸入的日期中指定世紀部分
SET @dt='01-2002-03'
SELECT @dt
--結果: 2002-01-03 00:00:00.000

--輸入的日期中不指定世紀部分
SET @dt='01-02-03'
SELECT @dt
--結果: 2003-01-02 00:00:00.000
GO

--3.

--示例,在下面的代碼中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT設置下,其解釋的結果是一樣的。
DECLARE @dt datetime

--設置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--結果: 2001-02-03 00:00:00.000

--設置SET DATEFORMAT為:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--結果: 2001-02-03 00:00:00.000

--輸入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--結果: 2003-02-01 00:00:00.000

--以下示例演示了在不同的語言環境(SET LANGUAGE)下,DATENAME與CONVERT函數的不同結果。
USE master

--設置會話的語言環境為: English
SET LANGUAGE N'English'
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]

--設置會話的語言環境為: 簡體中文
SET LANGUAGE N'簡體中文'
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM