我使用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 –