【问题标题】:Set datetime variable to next day at 12 am using sql使用 sql 将日期时间变量设置为第二天上午 12 点
【发布时间】:2017-05-17 05:57:39
【问题描述】:

我正在编写一个 SQL 作业,我必须将计划运行标记设置为每天凌晨 12:00:00。日期格式应为 2017-05-10 00:00:00.000 我做过这样的事情。但我不知道如何设置确切的日期和时间(这很关键)。请帮忙

 SET @ScheduledStStamp = GETDATE() + 1

【问题讨论】:

  • sql 用于 ANSI 标准语言。不幸的是,数据库产品的日期时间功能的工作方式差异很大。请为您的数据库产品(例如 Oracle、MySQL、SQL Server 等)编辑并添加标签。

标签: sql datetime stored-procedures job-scheduling sql-job


【解决方案1】:

假设您需要将日期设置为明天的日期,请使用 Dateadd(d,1,getdate())。

然后先将该日期转换为 varchar(8),然后再转换回 datetime。这会将您的时间设置为 '00:00:00.000' 格式。

 select convert(datetime,convert(varchar(8),Dateadd(d,1,getdate()),112))

如下分配你的变量

   Declare @ScheduledStStamp datetime
   SET @ScheduledStStamp =convert(datetime,convert(varchar(8),Dateadd(d,1,getdate()),112))
   select @ScheduledStStamp

【讨论】:

    【解决方案2】:

    我使用下面的代码得到了想要的结果

    SET @ScheduledStStamp = CONVERT(DATETIME, CONVERT(DATE, GETDATE() + 1))
    

    【讨论】:

      【解决方案3】:

      今天的日期:

      SELECT DATEADD(d,0,DATEDIFF(d,0,GETDATE()))
      

      明天:

      SELECT DATEADD(d,1,DATEDIFF(d,0,GETDATE()))
      

      昨天:

      SELECT DATEADD(d,-1,DATEDIFF(d,0,GETDATE()))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多