1

2 つの PDO データベース接続があります。日付 (mysql datetime) 行に最も近い行を MS SQL テーブル内で検索しています。

mssql.table に渡された mysql.table1.date があり、mssql.table.date に従って最も近い日付を探しています。また、日時フィールドとしても定義されています。時間に最も近い1行だけが返される必要があるため、本質的には次のとおりです。

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

上記の構文が間違っていることはわかっていますが、基本的には必要なものを出力しますが、mssql でこれを行う方法が本当にわかりません。

何か助けはありますか?

4

2 に答える 2

1

基本的に、mssql.Table.Date 列のすべての日付との mysql 日付の差を見つけることができます。次に、上記のクエリから最小の差の値を選択する必要があります。うまくいけば、以下のクエリが役立つかもしれません。

 ;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
于 2012-06-08T07:11:41.167 に答える
1

私にとってうまくいった簡単な解決策は、次のことを行うことでした:

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

これは、私が通過している時間に最も近い時間に一致する1行を返します:)

于 2012-06-11T10:51:45.220 に答える