/ / Vracia sa najbližšie k dátumu v tabuľke pomocou PDO Mysql / MSSQL - mysql, sql-server, pdo

Vracanie najbližšie k dátumu v tabuľke pomocou PDO Mysql / MSSQL - mysql, sql-server, pdo

Mám 2 pripojenia k PDO databázam. Robím vyhľadávanie v tabuľke MS SQL pre riadok, ktorý najbližšie zodpovedá dátumu (mysql datetime) riadku.

Mám súbor mysql.table1.date prenesený na mssql.a hľadám najbližší dátum podľa mssql.table.data. Je tiež definované ako pole dátumu. Potrebujem len 1 riadok vrátený, najbližšie k času, tak v podstate:

 SELECT * FROM table ORDER BY CLOSEST(mysqldate = mssql.table.date) LIMIT 1;

Viem, že vyššie uvedená syntax je nesprávna, ale v podstate produkuje to, čo potrebujem, ale naozaj neviem, ako to urobiť s mssql.

Nejaká pomoc?

odpovede:

1 pre odpoveď č. 1

V podstate môžete nájsť rozdiel mysqldátum so všetkými dátumami v stĺpci mssql.Table.Date .Potom je potrebné vybrať hodnotu minimálneho rozdielu z vyššie uvedeného dotazu. Dúfajme, že uvedený dotaz môže pomôcť u

 ;with CTE as
(
Select mssql.table.date,row_number()
over (order by    abs(datediff(day,mysqlDate,mssql.table.date))) rowNumber
from mssql.Table)
select mssql.table.date from CTE where rowNumber=1

1 pre odpoveď č. 2

Jednoduché riešenie, ktoré pre mňa pracovalo, bolo urobiť nasledovné:

 SELECT * FROM `table` WHERE `date` < `startDate` ORDER BY `date` LIMIT 1;

Tým sa vráti 1 riadok, ktorý zodpovedá najbližšiemu času, kedy prechádzajú :)