用SQL语句判断系统当前时间在一个时间段内。加急,在线等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQL语句判断系统当前时间在一个时间段内。加急,在线等相关的知识,希望对你有一定的参考价值。

这个时间段的数据时MinTime=08:00,MaxTime=19:59。从表dbo.Mst5STimeType中抽取。返回值为TimeTypeCD, TimeTypeName 。如果在在这个时间段内,其中TimeTypeCD返回的是1,TimeTypeName 返回的是白天。部分代码为
SELECT
TimeTypeCD,
TimeTypeName
FROM
dbo.Mst5STimeType
WHERE
ORDER BY TimeTypeCD
请问 。WHERE里应该怎么写条件
MinTime和MaxTime的类型是什么类型,定义的当前时间类型是什么类型,怎么去比较

参考技术A SELECT
case when
CONVERT(varchar(12) , 时间,108 ) between '08:00:00' and '19:59:59' then 1 else 0 end as TimeTypeCD,
case when
CONVERT(varchar(12) , 时间,108 ) between '08:00:00' and '19:59:59' then '白天' else '黑夜' end
as TimeTypeName
FROM
dbo.Mst5STimeType
ORDER BY TimeTypeCD

不用加where条件了,是不是叫黑夜我也不知道,那地方你自己改一下吧,不懂再问追问

TimeTypeCD已经在数据库的表中写好了分别是1和2
TimeTypeName 也已经写好了了是白天和黑夜
TimeTypeCD是主码
1对应着白天,2对应着晚上
我想用加WHere条件的
CONVERT(varchar(12) , 时间,108 ) 是什么意思我不明白

追答

是sqlserver数据库吧
你直接select CONVERT(varchar(12) , getdate(),108 )
执行一下就知道是什么了,是返回的时间格式

你的条件是要判断当前时间是不是在你定义的时间段内吗?
如果是在你定义的时间内则选1和白天,否则就选2和黑夜?
那就这样
SELECT
case when
CONVERT(varchar(12) , getdate(),108 ) between '08:00:00' and '19:59:59' then 1 else 2 end as TimeTypeCD,
case when
CONVERT(varchar(12) , getdate(),108 ) between '08:00:00' and '19:59:59' then '白天' else '黑夜' end
as TimeTypeName
FROM
dbo.Mst5STimeType
ORDER BY TimeTypeCD

本回答被提问者和网友采纳
参考技术B 查找之间数据,可以用:between
你确定,MinTime和MaxTime的类型一致就可以了。
SELECT TimeTypeCD,TimeTypeName FROM dbo.Mst5STimeType WHERE [要查找时间] between MinTime and MaxTime order by TimeTypeCD

要查找时间可以是NOW()也可以是你页面需求指定的一个时间等。。。追问

需要查找的时间是系统时间,这么才能获得系统时间?

追答

now()就是系统当前时间。

你再把格式处理和MinTime,MaxTime一样就行了。

追问

怎么格式处理?

追答

时间格式处理,你可以搜索一下相关的函数。。
或者像
DAY(NOW())这样就可以取到号数,,
YEAR(now())取年份,,,
等等,,

参考技术C MinTime和MaxTime类型要一致,才可以比对,SubString 截取 ,Between and 范围

怎样在C#中判断从界面选择的日期是在当前日期之前

急急 想问一下 怎么在c#中来判断从界面选择的日期是在当前日期之前 不仅仅是与当前日期相同 而是在当前输入时 系统的时间之前 不用SQL语句 急
我是想知道 判断在相同日期之前 总不能用大于小于来算吧
除了单独读取年月日 还有没有简单一点的方法
2008年11月6日1:30 和2008-11-5 15:42:37 可以用大于或小于比较吗?这一个个成功了!但是其它的都能成功吗?
Convert.ToDateTime(dtpTime.Text) < Convert.ToDateTime(DateTime.Now.ToString()) 试了一下可以 但是全部都可以的吗?

使用以下语句进行判断:dateTimePicker1.Value.Date == DateTime.Now.Date

其中dateTimePicker1为类型为DateTimePicker的Winform控件(就是街面上常见的选择日期的哪个)。

Ps:DateTime实现了<和>,所以,可以使用<>来比较大小。不过要注意,如果你需要比较的只是日期而不是时间,需要在比较的是Date1.Date>Date2.Date而不是Date1>Date2
参考技术A if (Convert.ToDateTime(dtpTime.Text) < Convert.ToDateTime(DateTime.Now.ToString()))


MessageBox.Show("ssssss");

else

MessageBox.Show("xxxxx");


用dateTimePicker控件测试
或者自己输入都行
复制 去测试一下 看输出那个你就知道对错了本回答被提问者采纳
参考技术B 获取当前时间
string a = DateTime.Now.ToString("yyyyMMddhhmmss");
string year = DateTime.Now.ToString("yyyy");获取年
string month = DateTime.Now.ToString("MM");获取月
string date = DateTime.Now.ToString("dd");获取日

然后在取出要比较的时间 先比较年也就是year 如果大于就直接OK了 如果一样 继续比较month 依次...
参考技术C 确实是大于小于这样来比较的

以上是关于用SQL语句判断系统当前时间在一个时间段内。加急,在线等的主要内容,如果未能解决你的问题,请参考以下文章

sql跨数据库查询两个表的方法,加急啊!!

sql语句 判断表是不是存在

sql 怎么获取系统时间

C语言应用(2)——判断当前时间是不是在一个时间段内(含跨天)

sql怎样列出一个月的全部日期

用sql语句如何获取当前时间,如何通过写sql语句改变数据库中的值如何通过写sql语句把数据从数据中提取出来