我正在尝试存储在工具中设置的 session 的日期,时间和时区。我允许用户指定日期和时间以及从时区列表中进行选择。
我的问题是试图弄清楚如何将所有3个部分都格式化并格式化为正确的datetimeoffset
进行存储。
我相信这是SQL Server所需的datetimeoffset
格式:
YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]
我的第一个问题是我的时区值应该是多少?
其次,SQL Server中是否有内置方法来传递此数据字符串并将其转换为
datetimeoffset
所需的格式? 最佳答案
如果您的工具可以将时间转换为字符串,请将其转换为您包含的格式。 [.nnnn]
部分的时间为纳秒。我还没有看到需要那种准确性的应用程序。如果您可以接受二级精度,那么datetimeoffset(0)
就足够了。
例子:
DECLARE @time_str varchar(30) = '2015-01-19 7:20:00 -08:00'
DECLARE @time datetimeoffset(0) = CONVERT(datetimeoffset, @time_str)
SELECT DATEPART(YEAR, @time),
DATEPART(MONTH, @time),
DATEPART(DAY, @time),
DATEPART(HOUR, @time),
DATEPART(MINUTE, @time),
DATEPART(SECOND, @time),
DATEPART(TZOFFSET, @time)
关于sql-server - 使用SQL Server datetimeoffset,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27863084/