sql数据库要显示当天中某一时段的记录,该如何写?求教。

来源:百度知道 编辑:UC知道 时间:2024/05/13 10:48:46
SQL数据库想调用到的有三个表:tb_Customer表 、 tb_inf表 、tb_Schedule表,
tb_Customer表主要字段:AccountNo,CustomerName,CardNo,DeptNo等
tb_inf表主要字段:AccountNo,LeftMoney,ConsumeTime等
tb_Schedule表主要字段:SchName,Stime(开始时间),eTime(结束时间)
tb_Schedule表的SchName,Stime(开始时间),eTime(结束时间)分为两个段:
SchNo SchName Stime eTime
1 早上 1900-1-1 1900-1-1 8:00:00
1 中午 1900-1-1 8:00:00 1900-1-1 14:00:00

其中tb_inf表的ConsumeTime和tb_Schedule表的Stime,eTime的时间格式都是:1900-1-1 8:00:00
已知查询某个部门当天一天的记录用如下的句子:
sql="Select A.AccountNo, A.CardNo, B.CustomerName, B.DeptNo, B.OldLeftMoney, B.LeftMoney, B.Je, B.ConsumeTime From tb_inf B Inner Join tb_Customer A On A.AccountNo = B.AccountNo where ConsumeTime between cast(GetDate()-0.5 as int) and GetDate() and B.DeptNo like '%001003001001%' order by A.CardNo, B.ConsumeTime asc"

求查询某个部门当天"早上"或"中午"的记录的SQL句子?
不太明白你的意思,事务日志如何恢复,能说具体一点吗?

ConsumeTime between cast(GetDate()-0.5 as int) and GetDate()

GetDate()是现在系统时间
GetDate()-0.5是12小时前的时间
所以你上边的sql语句是查询时间以前12个小时的数据,如果想查询固定的早上或者中午的数据,如果是通过sql查询分析器则可以直接把查询时间段替换一下即可
如查询今天中午的可以用
ConsumeTime between 2008-10-21 8:00:00 and 2008-10-21 14:00:00
,如果是别的软件,可以把ConsumeTime后的条件设置为参数,当选择早上时就查询1900-1-1 1900-1-1 8:00:00 之间的数据,当查询中午 就把参数替换为1900-1-1 8:00:00 1900-1-1 14:00:00 ,日期肯定要换,时间就设置成固定就可以了.

把你的数据库做好备份.然后用事务日志恢复的方法可以的.你先恢复到早上.记录下来.然后再恢复到中午.看看有什么变化.然后回到现在.