如果你想設置的日期格式的一些風格說,DDMMYYYY,在SQL Server中,我們可以使用下面的語句:如何獲取當前會話的日期格式
SET DATEFORMAT dmy
我的問題是前手是怎麼知道的這是設置的格式?
我正在編寫的程序需要確定,如果以上是實際的日期時間格式,否則設置它並繼續其餘的執行。
這怎麼可能?否則是我唯一的方法,將其設置爲我想要的格式並繼續執行?
我希望設置這不會影響其他會話(連接)?
如果你想設置的日期格式的一些風格說,DDMMYYYY,在SQL Server中,我們可以使用下面的語句:如何獲取當前會話的日期格式
SET DATEFORMAT dmy
我的問題是前手是怎麼知道的這是設置的格式?
我正在編寫的程序需要確定,如果以上是實際的日期時間格式,否則設置它並繼續其餘的執行。
這怎麼可能?否則是我唯一的方法,將其設置爲我想要的格式並繼續執行?
我希望設置這不會影響其他會話(連接)?
你應該轉換函數的日期時間轉換爲理想的格式,
試試這個:
SELECT convert(varchar(10),getdate(),103)
OR
SELECT replace(convert(varchar(10),getdate(),103),'/','')
喲可以獲得更多的信息: http://msdn.microsoft.com/en-us/library/ms187928.aspx
與SQL 2008開始,當前的日期格式設置可被SPID/SESSION_ID的dm_exec_requests
動態管理視圖中確定:
SELECT r.date_format
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Permissions:
如果用戶在服務器上具有VIEW SERVER STATE權限,則用戶能夠看到SQL Server實例上的所有正在執行的會話;否則,用戶只會看到當前會話。
下面的代碼,獲取當前會話dateformat
,其設置和測試其是否工作
-- get the current session date_format
select date_format
from sys.dm_exec_sessions
where session_id = @@spid
-- set the dateformat for the current session
set dateformat ymd
-- this should work
select cast('2017-08-13 16:31:31' as datetime)
使用'DBCC useroptions'檢查的日期格式。 '設置DATEFORMAT'只會影響當前會話 – praveen
@praveen謝謝你的幫助。請輸入你的答案。 :) – deostroll
編寫不依賴於任何特定日期格式的代碼會更好,更好。 –