【发布时间】:2015-01-19 10:25:42
【问题描述】:
我想获取日期和时间大于给定日期的行。这是我的桌子:
EvDate EvTime ClBdg Name Event
18.01.2015 10:55:01 001 Jane enter
18.01.2015 19:31:21 003 Brad exit
19.01.2015 13:31:21 002 Lucy exit
假设date 是18.01.2015,time 是17:00:00。期望值为:
EvDate EvTime ClBdg Name Event
18.01.2015 19:31:21 003 Brad exit
19.01.2015 13:31:21 002 Lucy exit
谁能帮帮我?
编辑: 为了更清楚,我编辑了我的帖子。这是执行查询的java代码:
private static final SimpleDateFormat sdfTime=new SimpleDateFormat("HH:mm:ss");
private static final SimpleDateFormat sdfDate=new SimpleDateFormat("dd.MM.yyyy");
private long givenTimeStamp = 1421600400L;
public static Date givenDate = new Date(givenTimeStamp);
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String DATABASE = "jdbc:ucanaccess://"+CONF.getString("db.location")+";jackcessOpener=uz.lexus.access.crypto.MyCryptoProvider";
connection= DriverManager.getConnection(DATABASE, null, null);
List<Event> events=new ArrayList<Event>();
String selectEvents = "select EvDate,EvTime,ClBdg,Event from Evntlog_tbl where Event in ('enter','exit') and not ClBdg=0 and EvDate >= ? and EvTime > ? order by EvDate desc, EvTime desc";
PreparedStatement prstm= connection.prepareStatement(selectEvent);
java.sql.Date date=new java.sql.Date(sdfDate.parse(sdfDate.format()).getTime(givenDate));
java.sql.Time time=new Time(sdfTime.parse(sdfTime.format(givenDate)).getTime());
prstm.setDate(1,date);
prstm.setTime(2,time);
ResultSet rs = prstm.executeQuery();
现在的问题是:selectEvent中的查询是否正确?
【问题讨论】:
-
你使用的是哪个数据库答案取决于它
-
您使用的是什么风格的 SQL(或什么具体数据库)?这些在处理这些事情的方式上都略有不同!请在您的问题中添加相关标签(如
oracle、postgresql、mysql、db2、sql-server等!) -
EvDate&EvTime的数据类型是什么 -
EvDate 是日期类型,EvTime 是时间
-
您尝试过什么吗?如果没有,请阅读 sql server 中的
WHERE子句,这里是链接msdn.microsoft.com/en-us/library/ms188047.aspx
标签: java date time ucanaccess