Ma question est divisée en 2 parties:R - Date/Heure Les calculs
1ère partie:
J'ai une fonction, getdata()
que j'utilise pour extraire des informations pour une plage de dates.
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,"'")
puis j'effectue des calculs sur celui-ci.
En outre, dans mon programme. J'utilise cette fonction getdata()
pour extraire des données pour un nouvel ensemble d'analyses.
rf_log_perform <- get_data(display_facility_decode(input$facNum2),
input$dateRange2, input$dateRange2 + 1)
ici depuis que je suis en utilisant une seule date au lieu de la plage, j'ai ajouté un à la plage pour que la fonction getdata()
fonctionnerait. Je voulais ensuite modifier la plage de dates de manière à ce qu'elle ne s'affiche plus après 11:59 pour la date sélectionnée.
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'))
En utilisant la fonction getdata()
, je serais en mesure d'extraire des données pour la plage de dates 29/8/2017, 05:00:00 à 30/8/2017, 05:00:00 qui est considéré comme sois un jour dans mon exemple.
Mais pour mes calculs, je veux jeter tout ce qui est au-delà de 08/29/2017, 23:59:59 PM, pour des résultats plus précis. Pour cela, j'ai ajouté une instruction ifelse
pour le trier. Mais cela ne se comporte pas comme je m'attends et je suis confus pourquoi pas.
Quel est exactement le problème/la question? – Dave2e