使用ASP.NET API我使用GetDate()SQL Server函数插入了DateTime,当我选择回数据时,它给出了类似2015-12-07T09:20:17.097
的格式,而且插入记录时时间与我的当前时间不符。
如何根据本地时区获取/插入时间
您有两种选择:
- 使用SQL选择查询日期格式化程序格式化数据参考:http://www.w3schools.com/sql/func_convert.asp
- 使用ASP.net c#/Vb.net,您可以使用Convert.ToDateTime(value).ToString("将格式放在此处");参考:https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx
这里有两个函数可以帮助您。第一个是SYSDATETIMEOFFSET
这将从服务器返回日期、时间和时区。如果我们将其与SWITCHOFFSET相结合,我们可以返回另一个时区的日期和时间。
下面是一个返回美国东部时间(-05:00)的示例:
SELECT
SWITCHOFFSET(SYSDATETIMEOFFSET(), '-05:00') AS EasternTime
时区参数为夏时制。
下一个示例演示了时区参数设置时区,而不仅仅是添加/减去经过的小时和分钟:
DECLARE @GMT DATETIMEOFFSET = '2015-12-17 09:00:00.0000000 +00:00'
DECLARE @GMT_Plus1 DATETIMEOFFSET = '2015-12-17 10:00:00.0000000 +01:00'
/* Both 9am in timezone +0 (London) and 10am in +1 (Paris)
* will return 4am Eastern time (timezone -5)
*/
SELECT
SWITCHOFFSET(@GMT, '-05:00') AS EasternTime1,
SWITCHOFFSET(@GMT_Plus1, '-05:00') AS EasternTime2
;
这两个函数都需要SQL Server 2008或更高版本。有关SQL Server日期和时间功能的详细信息,请参阅MSDN。