#mysql #sql #node.js
Вопрос:
Я хочу реализовать следующий sql-запрос:
date_count = await customQuery( ` SELECT COUNT(org.name OR c.name OR co.name OR seg.arrival_details OR seg.departure_details OR seg.segment_airline_id OR seg.segment_arrival_airport_code OR seg.segment_departure_airport_code OR seg.segment_flight_number OR seg.trip_id OR b.trip_id OR bf.pnr_no OR bf.airline_pnr_no OR b.booking_status OR b.created OR org.organisation_id OR org.name ) AS total_count FROM segment_details AS seg LEFT JOIN trip_details AS tr ON seg.trip_id = tr.trip_id LEFT JOIN bookings_flight AS bf ON tr.bookings_flight_id = bf.booking_flight_id LEFT JOIN bookings AS b ON bf.booking_id = b.booking_id LEFT JOIN organisation AS org ON b.organisation_id = org.organisation_id LEFT JOIN city AS c ON org.city_id = c.city_id LEFT JOIN country AS co ON org.country_id = co.country_id WHERE seg.segment_departure_date BETWEEN ${moment(date.startDate).startOf('day').format("YYYY-MM-DD HH:mm:ss") } AND ${moment(date.endDate).endOf('day').format("YYYY-MM-DD HH:mm:ss")} `)
Но я получаю следующую ошибку:
UnhandledPromiseRejectionWarning: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00
мой результат на свидании выглядит так : ‘2021-10-01T08:00:00.000 Z’
и когда я применяю к нему moment js, мой результат выглядит следующим образом: ‘2021-10-01 00:00:00’
Я использую MySQL, SQL Yog
Как я могу исправить эту ошибку? Любая помощь или предложение будут оценены по достоинству.
Ответ №1:
Постарайтесь окружить свои даты одинарными кавычками:
... seg.segment_departure_date BETWEEN '${moment(date.startDate).startOf('day').format("YYYY-MM-DD HH:mm:ss")}' AND '${moment(date.endDate).endOf('day').format("YYYY-MM-DD HH:mm:ss")}'
Ответ №2:
Попробуй это. Вам нужно добавить одинарные кавычки
const startDate = moment(date.startDate).startOf('day').format("YYYY-MM-DD HH:mm:ss"); const endDate = moment(date.endDate).endOf('day').format("YYYY-MM-DD HH:mm:ss"); ... WHERE seg.segment_departure_date BETWEEN '${startDate}' AND '${endDate}'