如果你想将dateformat设置为某些样式,比如ddMMyyyy,在sql server中我们可以使用以下语句:
SET DATEFORMAT dmy
我的问题是如何预先知道这是格式集?
我写的程序需要确定,如果以上是实际的datetimeformat,否则设置它并继续执行其余的。
这怎么可能?另外,我是唯一的方法,将其设置为我想要的格式并继续执行?
我希望设置它不会影响其他会话(连接)?
答案 0 :(得分:2)
答案 1 :(得分:0)
您应该通过转换函数
将日期时间转换为所需的格式试试这个:
SELECT convert(varchar(10),getdate(),103)
OR
SELECT replace(convert(varchar(10),getdate(),103),'/','')
哟可以获得更多信息: http://msdn.microsoft.com/en-us/library/ms187928.aspx
答案 2 :(得分:0)
从SQL 2008开始,当前日期格式设置可由dm_exec_requests
动态管理视图中的SPID / session_id确定:
SELECT r.date_format
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
<强>权限:强>
如果用户在服务器上具有VIEW SERVER STATE权限,则用户可以在SQL Server实例上查看所有正在执行的会话;否则,用户将只看到当前会话。
答案 3 :(得分:0)
以下代码,获取当前会话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)
答案 4 :(得分:0)
似乎没有全局@@变量来显示DATEFORMAT。 (?)
根据此处的其他答案, 可以使用:
DBCC useroptions
和
select date_format
from sys.dm_exec_sessions
where session_id = @@spid