Added date/time checks for MySQL v5.7+ date/time nulls

Shouldn't be necessary in the daypart SQL but can't verify validity so added
checks there too.
This commit is contained in:
Wayne Merricks 2016-06-03 23:50:29 +01:00
parent d222ed9ca0
commit e2eb07c615

View File

@ -347,20 +347,19 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate,
QDate date=startdate.addDays(i);
if(startTime()<endTime()) {
daypart_sql+=QString("((EVENT_DATETIME>=\"")+
date.toString("yyyy-MM-dd")+
" "+startTime().toString("hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME<\""+date.toString("yyyy-MM-dd")+
" "+endTime().toString("hh:mm:ss")+"\"))||";
RDCheckDateTime(date,"yyyy-MM-dd")+
" "+RDCheckDateTime(startTime(),"hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME<\""+RDCheckDateTime(date,"yyyy-MM-dd")+
" "+RDCheckDateTime(endTime(),"hh:mm:ss")+"\"))||";
}
else {
daypart_sql+=QString("((EVENT_DATETIME<=\"")+
date.toString("yyyy-MM-dd")+
" "+endTime().toString("hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME>\""+date.toString("yyyy-MM-dd")+" 00:00:00))||"+
"((EVENT_DATETIME>=\""+
date.toString("yyyy-MM-dd")+
" "+startTime().toString("hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME<\""+date.toString("yyyy-MM-dd")+" 23:59:59))||";
RDCheckDateTime(date,"yyyy-MM-dd")+
" "+RDCheckDateTime(endTime(),"hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME>\""+RDCheckDateTime(date,"yyyy-MM-dd")+" 00:00:00))||"+
"((EVENT_DATETIME>=\""+RDCheckDateTime(date,"yyyy-MM-dd")+
" "+RDCheckDateTime(startTime(),"hh:mm:ss")+"\")&&"+
"(EVENT_DATETIME<\""+RDCheckDateTime(date,"yyyy-MM-dd")+" 23:59:59))||";
}
}
@ -534,9 +533,9 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate,
// Daypart Filter
//
if(daypart_sql.isEmpty()) {
sql+=QString("(EVENT_DATETIME>=\"")+startdate.toString("yyyy-MM-dd")+
sql+=QString("(EVENT_DATETIME>=\"")+RDCheckDateTime(startdate,"yyyy-MM-dd")+
" 00:00:00\")&&"+
"(EVENT_DATETIME<=\""+enddate.toString("yyyy-MM-dd")+
"(EVENT_DATETIME<=\""+RDCheckDateTime(enddate,"yyyy-MM-dd")+
" 23:59:59\")&&";
}
else {
@ -555,8 +554,8 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate,
q1->value(1).toUInt(),
q1->value(2).toInt())+
"STATION_NAME=\""+RDEscapeString(q1->value(3).toString())+"\","+
"EVENT_DATETIME=\""+RDEscapeString(q1->value(4).toDateTime().
toString("yyyy-MM-dd hh:mm:ss"))+"\","+
"EVENT_DATETIME=\""+RDCheckDateTime(q1->value(4).toDateTime(),
"yyyy-MM-dd hh:mm:ss")+"\","+
QString().sprintf("EVENT_TYPE=%d,",q1->value(5).toInt())+
"EXT_START_TIME=\""+RDEscapeString(q1->value(6).toString())+"\","+
QString().sprintf("EXT_LENGTH=%d,",q1->value(7).toInt())+
@ -572,7 +571,7 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate,
"TITLE=\""+RDEscapeString(q1->value(16).toString())+"\","+
"ARTIST=\""+RDEscapeString(q1->value(17).toString())+"\","+
"SCHEDULED_TIME=\""+
q1->value(18).toDate().toString("yyyy-MM-dd hh:mm:ss")+"\","+
RDCheckDateTime(q1->value(18).toDate(),"yyyy-MM-dd hh:mm:ss")+"\","+
QString().sprintf("START_SOURCE=%d,",q1->value(19).toInt())+
"PUBLISHER=\""+RDEscapeString(q1->value(20).toString())+"\","+
"COMPOSER=\""+RDEscapeString(q1->value(21).toString())+"\","+
@ -923,7 +922,7 @@ void RDReport::SetRow(const QString &param,const QTime &value) const
sql=QString().sprintf("UPDATE REPORTS SET %s=\"%s\" WHERE NAME=\"%s\"",
(const char *)param,
(const char *)value.toString("hh:mm:ss"),
(const char *)RDCheckDateTime(value, "hh:mm:ss"),
(const char *)report_name);
q=new RDSqlQuery(sql);
delete q;