【T-SQL】基础——操作

--删除表 如果已经存在
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())

原文地址:https://www.cnblogs.com/FsharpZack/p/3558550.html