Meine Frage ist in zwei Teile gegliedert:R - Datum/Uhrzeit Berechnungen
1. Teil:
ich eine Funktion haben, getdata()
die ich Informationen für einen Datumsbereich zu ziehen, verwenden.
get_data <- function (fac_num, start_date, end_date) {
if (!(is.null(fac_num) | is.null(start_date) | is.null(end_date))) {
if(end_date - start_date > 7) {
start_date <- end_date - 7
#start_date <- as.Date('2017-07-05')
#end_date <- as.Date('2017-07-06')
#fac_num <- "005"
}
new_start_date <- paste0(start_date,' 05:00:00')
new_end_date <- paste0(end_date + 1,' 05:00:00')
qry <- paste0("SELECT FAC_NUM, USER_ID, APPL_ID, FUNC_ID, ST_ID, NXT_ST_ID, RESP_PRMT_DATA,
ST_DT_TM, END_DT_TM, RESP_PRMT_TY_CDE,
REQ_INP_DATA FROM OPSDBA.STG_RFS_INTERACTION WHERE TRANS_ST_DT_TM >= DATE'",
start_date,"' AND TRANS_ST_DT_TM BETWEEN TO_TIMESTAMP('",new_start_date,"', 'YYYY-MM-DD HH:MI:SS') AND TO_TIMESTAMP('",new_end_date,"', 'YYYY-MM-DD HH:MI:SS')
AND APPL_ID='CTS' AND FAC_NUM='",fac_num,"'")
und dann führe ich Berechnungen darauf durch.
Weiter in meinem Programm. Ich verwende diese getdata()
Funktion, um Daten für eine neue Reihe von Analysen zu ziehen.
rf_log_perform <- get_data(display_facility_decode(input$facNum2),
input$dateRange2, input$dateRange2 + 1)
Hier seit ich statt Bereich nur ein einzelnes Datum verwende, habe ich eine in das Programm aufgenommen, so dass die getdata()
Funktion funktionieren würde.
Ich wollte dann den Datumsbereich so ändern, dass es für das ausgewählte Datum nichts nach 11:59 zeigt.
rf_log_perform$date <- ifelse(strftime(rf_log_perform$st_dt_tm, format="%H:%M:%S")<'05:00:00',
format(as.POSIXct(strptime(rf_log_perform$st_dt_tm - 1*86400 , '%Y-%m-%d %H:%M:%S')),format = '%Y-%m-%d'),
format(as.POSIXct(strptime(rf_log_perform$st_dt_tm , '%Y-%m-%d %H:%M:%S')),format = '%Y-%m-%d'))
Durch die Verwendung der getdata()
Funktion, ich wäre in der Lage Daten für Datumsbereich 2017.08.29, ziehen 05.00.00 bis 2017.08.30, 05.00.00, die in Betracht gezogen wird, sei ein Tag in meinem Beispiel.
Aber für meine Berechnungen möchte ich alles, was über 08/29/2017, 23:59:59 PM hinausgeht, für genauere Ergebnisse verwerfen. Zu diesem Zweck habe ich eine ifelse
Anweisung hinzugefügt, um das zu sortieren. Aber das ist nicht so, wie ich es erwarte und ich bin verwirrt warum nicht.
Was genau ist das Problem/die Frage? – Dave2e