我使用delphi 2010和Firebird(本地)进行测试,但最终将运行我的应用程序对MS Sql Server或Oracle。根据开始和结束日期时间字段选择记录
如果我有日期时间字段(start_time & end_time),并且我想选择过去30天或日期的所有记录,我如何做到这一点,考虑到上面提到的三个数据库(firebird ,SQL服务器,Oracle)
示例日期时间字段看起来像这样:2012年10月15日上午9点二十零分49秒
以下是其中我想添加额外的where子句的示例SQL语句到:
SQL.Text:=
'SELECT J.id, MIN(p.start_Time) as startTime, MAX(p.end_Time) as endTime, '
+ 'SUM(p.duration) as TotalDuration '
+ 'FROM phases p '
+ 'JOIN jobs j ON j.id = p.jobs_Id '
+ 'WHERE j.id=:jobId '
+ 'GROUP BY j.id';
如何从starttime或endtime在最近30天内的阶段中选择所有记录?
如何选择一个阶段那里开始时间或结束时间坠落日期范围 内(可以说,例如,我使用的PARAMS:beginDateRange &:endDateRange)的所有记录
感谢名单为您的帮助
不会它的工作就像整数? '(column_date <:endDateRange)和(column_date> =:beginDateRange)'?而对于“最后30”,你只需设置beginRange并省略endRange的条件 –
对于“最后30”,你可以使用'datediff(从current_date到日期的日期)(尽管它可能只是Firebird)构建:http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-datediff.html –