• 章节:19
  • 访问:892
  • 时长:00:10:07
  • 日期:2019-06-02 12:34

有一张日程安排表。

有一个开始时间StartTime,当用户每次打开后台的适合。

每当时间到达这个开始时间。就进行提示。如果完成了。用户自行删除这条记录。不删除就一直提醒。

那么我们怎么查询呢

首先我们创建这张表出来。

CREATE TABLE [dbo].[Schedule](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Content] [nvarchar](50) NULL,
[StartTime] [datetime] NULL,
[Status] [bit] NULL,
 CONSTRAINT [PK_Schedule] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

添加数据

clipboard.png

那么要查出所有时间比现在要小的(也就是已经到达开始时间)

SELECT [ID]
      ,[Content]
      ,[StartTime]
      ,[Status]
  FROM [Demo].[dbo].[Schedule]
  where StartTime <=GETDATE()

(日期时间是未来的时间比现在的时间要大)

但是如果我们要提前五分钟就要提醒呢?

这个时间 要计算两个时间差

   SELECT [ID]
      ,[Content]
      ,[StartTime]
      ,[Status]
  FROM [Demo].[dbo].[Schedule]
  where DATEDIFF(minute,GETDATE(),StartTime) < 5

datediff是后面的时间减去前面的时间。

SELECT [StartTime],GETDATE(),DATEDIFF(minute,getdate(),starttime)
  FROM [Demo].[dbo].[Schedule]
GO

如果后面的时间比前面的时间要小 那么 得到结果就是负数。