当存储在MSSQL中时,如何检查时间字段落在c#中的当前时间之间
本文关键字:时间 字段 之间 中时 MSSQL 存储 何检查 检查 | 更新日期: 2023-09-27 18:05:34
我有两个time(7)
字段在我的数据库startTime
和endTime
我检索它们并存储它们:
private TimeSpan? _startTime
private TimeSpan? _endTime
如果_startTime
字段等于10:00:00
, _endTime
等于13:00:00
。如何查看当前时间是否介于两者之间(上午10点至下午1点)?我是否需要以某种方式创建DateTime
?
这个怎么样?
private TimeSpan? _startTime
private TimeSpan? _endTime
public bool IsBetween(DateTime? now = null)
{
if (_startTime == null || _endTime == null)
return false;
if (now == null)
now = DateTime.Now;
TimeSpan currentTime = now.TimeOfDay;
return _startTime <= currentTime && currentTime <= _endTime;
}
你也可以在SQL中这样做:
CREATE PROCEDURE GetTimes
AS
BEGIN
DECLARE @CurrentTime TIME
SET @CurrentTime = CAST(GETDATE() AS TIME)
SELECT
t.*,
CASE WHEN t.StartTime <= @CurrentTime AND @CurrentTime <= t.EndTime
THEN 1
ELSE 0
END AS 'IsBetween'
FROM
<MyTable> t
END