Sql server 如何获取当前会话';日期格式
如果要在sql server中将dateformat设置为某种样式(例如ddMMyyyy),我们可以使用以下语句:Sql server 如何获取当前会话';日期格式,sql-server,datetime,datetime-format,Sql Server,Datetime,Datetime Format,如果要在sql server中将dateformat设置为某种样式(例如ddMMyyyy),我们可以使用以下语句: SET DATEFORMAT dmy 我的问题是如何事先知道这是设置的格式 我正在编写的程序需要确定上面的是否是实际的datetimeformat,否则设置它并继续执行其余部分 这怎么可能?否则是我唯一的方法,将它设置为我想要的格式并继续执行 我希望此设置不会影响其他会话(连接)?您应该通过convert函数将datetime转换为所需的格式 试试这个: SELECT conve
SET DATEFORMAT dmy
我的问题是如何事先知道这是设置的格式
我正在编写的程序需要确定上面的是否是实际的datetimeformat,否则设置它并继续执行其余部分
这怎么可能?否则是我唯一的方法,将它设置为我想要的格式并继续执行
我希望此设置不会影响其他会话(连接)?您应该通过convert函数将datetime转换为所需的格式 试试这个:
SELECT convert(varchar(10),getdate(),103)
或
您可以获得以下方面的更多信息:
要检查日期格式,请使用
DBCC useroptions
SET DATEFORMAT
将只影响当前会话
从SQL 2008开始,当前日期格式设置可以通过
dm\u exec\u请求中的SPID/session\u id来确定
动态管理视图:
SELECT r.date_format
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
权限:如果用户在服务器上具有查看服务器状态权限,则可以查看SQL SERVER实例上所有正在执行的会话;否则,用户将只看到当前会话。下面的代码,获取当前会话的日期格式,设置它并测试它是否工作
-- 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)
似乎没有全局@变量来显示DATEFORMAT。(?) @@变量列表记录在此处: 根据这里的其他答案,, 可以使用: 及
使用
DBCC useroptions
检查日期格式<代码>设置日期格式只会影响当前session@praveen谢谢,这很有帮助。请输入您的答案。:)编写不依赖于任何特定日期格式的代码要好得多。
-- 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
select date_format
from sys.dm_exec_sessions
where session_id = @@spid