-1

我在一个应用程序中有两个不同的日期和时间表。在日期表中,“日期”以“日期时间”格式存储,而在时间表中,“时间”部分以 varchar 格式存储。

两个表 id 都存储在事务表中以获取日期时间值。

从事务表中查询指定特定日期时间值的数据库时出现问题。

日期表

ID_DAT          DATE_DAT (smalldatetime)  
20000101    01/01/2000 0:00  
20000102    02/01/2000 0:00  
20000103    03/01/2000 0:00   
20000104    04/01/2000 0:00  
20000105    05/01/2000 0:00  
20000106    06/01/2000 0:00  
20000107    07/01/2000 0:00  
20000108    08/01/2000 0:00  
20000109    09/01/2000 0:00  
20000110    10/01/2000 0:00  

时间表

ID_TIM   HOUR_TIM   MINUTE_TIM  STRING_TIM (varchar)  
0    0          0           00:00  
1    0          1           00:01  
2    0          2           00:02  
3    0          3           00:03  
4    0          4           00:04  
5    0          5           00:05  
6    0          6           00:06  
7    0          7           00:07  
8    0          8           00:08  
9    0          9           00:09  
10   0         10           00:10  

交易数据样本(id 可能与提供的主数据不匹配)

SEQNUM  ID_DAT          ID_TIM  ORIGINAL_VALUE_PER  
2495089 20130424    30  10.0000000000  
2495089 20130424    60  12.0000000000  
2495089 20130424    90  15.0000000000  
2495089 20130424    120 20.0000000000  
2495089 20130424    150 24.0000000000  
2495089 20130424    180 28.0000000000  
2495089 20130424    210 34.0000000000  

现在我想查询特定日期的交易数据,比如说在 03:30 之后。

请指导我如何实现同样的目标。

谢谢

4

1 回答 1

0

有点像这样:

       SELECT * from TRANSACTION_TABLE TT 
    join DATE_TABLE DT on TT.ID_DAT = DT.ID_DAT 
    join TIME_TABLE TM on TT.ID_TIM = TM.ID_TIM 
    where (DT.DATE_DAT > '10/19/2013'  and DT.DATE_DAT < '10/21/2013')
or (DT.DATE_DAT = '10/21/2013' and HOUR_TIM < 3 and MINUT_TIME < 30)
or (DT.DATE_DAT = '10/19/2013' and HOUR_TIM >= 3 and MINUT_TIME >= 30)
于 2013-10-19T12:45:04.353 回答