C# SQL 命令:WHERE 今天的日期和自定义时间

C# SQL Command : WHERE today's date and a custom time

约会的数据类型将是日期时间

假设我想列出使用今天的日期以及上午 11 点到晚上 7 点之间的约会

我应该如何在我的 C# 程序中编写查询?

SELECT Appointment FROM table WHERE Appointment between 11AM and 7PM.

提前致谢:)

var startDateTime = DateTime.Today + new TimeSpan(11, 0, 0);
var endDateTime = DateTime.Today + new TimeSpan(19, 0, 0);

将这些值作为参数传递到您的查询中。

这也适用于 SQL-Server 2005 及以下版本:

SELECT Appointment FROM table 
WHERE Appointment between 
     DATEADD(hour, 11, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0))
AND  DATEADD(hour, 19, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0))

Demo

既然你提出了查询,你可以使用一点点 DATEADD, GETDATE and CONVERT 组合,例如;

SELECT Appointment
FROM table
WHERE Appointment between
DATEADD(HOUR, 11, (GETDATE() - CONVERT(VARCHAR(12),GETDATE(),114)))
and DATEADD(HOUR, 19, (GETDATE() - CONVERT(VARCHAR(12),GETDATE(),114)))

table 确实是 table 的坏名字。选择一个特定的名称。

SELECT Appointment FROM table WHERE datepart(hour,Appointment) between 11 and 18

将给出 11:00:00.000 和 18:59:59.999

之间的时间