--删除表 如果已经存在
USE master
--检查是否已经存在一个表,如果有就删除
IF(EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '#Op_Table;'))
DROP table #Op_Table;
GO
--检查是否已经存在一个临时表,如果有就删除
IF(OBJECT_ID(N'tempdb..#Op_Table')) is not null
DROP TABLE #Op_Table
GO
----检查是否已经存在一个临时表,如果有就删除
--IF(EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE id = object_id(N'tempdb..#Op_Table')))
-- DROP TABLE #Op_Table
--GO
--创建表
CREATE TABLE #Op_Table
(
ID int identity(1,1) Primary Key,
DateTime_Loc datetimeoffset(7) null,
DateTime_UTC datetimeoffset(7) null,
DateTimeStr nvarchar(23) null,
DateKey int null
)
INSERT INTO #Op_Table(DateTime_Loc,DateTime_UTC,DateTimeStr,DateKey)
VALUES
(
--获取本地时间 datetimeoffset 类型
SYSDATETIMEOFFSET(),
--根据本地时间获取UTC时间
SWITCHOFFSET(SYSDATETIMEOFFSET(),'+00:00'),
--本地时间转字符串, datetimeoffset-> nvarchar
CAST(SYSDATETIMEOFFSET() AS nvarchar(23)),
--获取时间字符串的一部分 转成int
PARSE(
REPLACE(
SUBSTRING(CAST(SYSDATETIMEOFFSET() AS nvarchar(23)),0,11),
'-',
'')
AS int
)
),
(SYSDATETIMEOFFSET(),null,null,null),
(null,null,null,null)
SELECT *
FROM #Op_Table
--ISNULL操作: 如果列的值为NULL 则默认为本地时间
WHERE ISNULL(SWITCHOFFSET(DateTime_Loc,'+00:00'),SYSDATETIMEOFFSET()) = ISNULL(DateTime_UTC,SYSDATETIMEOFFSET())