Я пытаюсь объединить две таблицы из MariaDB и преобразовать длинный текст (который, как я предполагаю, совпадает со строкой?) В дату.
Я просмотрел несколько форумов и прочитал некоторые из них.документация MariaDB, но я не опытный программист SQL, поэтому я, вероятно, где-то неправильно понял синтаксис, и был бы признателен за любую помощь, которую вы можете оказать.
Данные в 'members_expiry_date' не являются обязательными- некоторые записи имеют значение ПУСТО (NULL), но там, где есть дата, это длинный текст в следующем формате: 2019/12/31 (ГГГГ / мм / дд)
SELECT u1.`ID` AS 'User ID',
u1.`user_login` AS 'Website ID',
m1.meta_value AS 'Last Name',
m2.meta_value AS 'First Name',
m3.meta_value AS 'Subs Expire',
FROM dbName_users u1
LEFT JOIN dbName_usermeta m1 ON (m1.`user_id` = u1.`ID` AND m1.`meta_key` = 'last_name')
LEFT JOIN dbName_usermeta m2 ON (m2.`user_id` = u1.`ID` AND m2.`meta_key` = 'first_name')
LEFT JOIN dbName_usermeta m3 ON (m3.`user_id` = u1.`ID` AND m3.`meta_key` = STR_TO_DATE('membership_expiry_date', '%Y/%m/%d'))
В основном мне нужно вытащить дату какдата, чтобы я мог манипулировать ею позже, что я не могу сделать, если это строка.
Если мне удалось запустить этот (или какой-то другой вариант) код, результаты до сих пор былиNULL.
ОБНОВЛЕНИЕ Итак, я использую приведенный ниже код в плагине wpDataTable WordPress и, хотя я думаю, что он берет 'members_expiry_date' и создает столбец DATE ('Subs_Expire'), яне могу манипулироватьстолбец в плагине wpDataTables как столбец DATE.Я знаю это, потому что я добавил столбец «User_Registered», который содержит данные DATETIME и имеет операторы «больше» и «меньше», доступные в параметрах условного форматирования, а столбец «Subs_Expire» - нет.
У меня естьпопытался использовать CAST () и CONVERT () с различными параметрами DATE / TIME вместо STR_TO_DATE (), но безуспешно.
Я разместил запрос на веб-сайте TMS, кодировщиках wpDataTables, чтобы выяснить,они могут помочь: https://tmsplugins.ticksy.com/ticket/1989889/
SELECT u1.`ID` AS `User ID`,
u1.`user_login` AS `Website_ID`,
u1.`user_registered` AS `User_Registered`,
m1.meta_value AS `Last_Name`,
m2.meta_value AS `First_Name`,
STR_TO_DATE(m3.meta_value, '%Y/%m/%d') as `Subs_Expire`,
FROM dbName_users u1 LEFT JOIN
dbName_usermeta m1
ON m1.`user_id` = u1.`ID` AND
m1.`meta_key` = 'last_name' LEFT JOIN
dbName_usermeta m2
ON m2.`user_id` = u1.`ID` AND
m2.`meta_key` = 'first_name' LEFT JOIN
dbName_usermeta m3
ON m3.`user_id` = u1.`ID` AND
m3.`meta_key` = 'membership_expiry_date';