用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的类型是什么类型,定义的当前时间类型是什么类型,怎么去比较
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
你确定,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#中判断从界面选择的日期是在当前日期之前
急急 想问一下 怎么在c#中来判断从界面选择的日期是在当前日期之前 不仅仅是与当前日期相同 而是在当前输入时 系统的时间之前 不用SQL语句 急
我是想知道 判断在相同日期之前 总不能用大于小于来算吧
除了单独读取年月日 还有没有简单一点的方法
2008年11月6日1:30 和2008-11-5 15:42:37 可以用大于或小于比较吗?这一个个成功了!但是其它的都能成功吗?
Convert.ToDateTime(dtpTime.Text) < Convert.ToDateTime(DateTime.Now.ToString()) 试了一下可以 但是全部都可以的吗?
其中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语句判断系统当前时间在一个时间段内。加急,在线等的主要内容,如果未能解决你的问题,请参考以下文章