当存储在MSSQL中时,如何检查时间字段落在c#中的当前时间之间

本文关键字:时间 字段 之间 中时 MSSQL 存储 何检查 检查 | 更新日期: 2023-09-27 18:05:34

我有两个time(7)字段在我的数据库startTimeendTime

我检索它们并存储它们:

private TimeSpan? _startTime
private TimeSpan? _endTime

如果_startTime字段等于10:00:00, _endTime等于13:00:00。如何查看当前时间是否介于两者之间(上午10点至下午1点)?我是否需要以某种方式创建DateTime ?

当存储在MSSQL中时,如何检查时间字段落在c#中的当前时间之间

这个怎么样?

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