mysql - 使用 PDO 返回最接近表中日期的 Mysql/MSSQL

标签 mysql sql-server pdo

我有 2 个 PDO 数据库连接。我正在 MS SQL 表中搜索与日期 (mysql 日期时间) 行最匹配的行。

我已将 mysql.table1.date 传递给 mssql.table,我正在根据 mssql.table.date 寻找最接近的日期。它也被定义为日期时间字段。我只需要返回 1 行,最接近时间,所以本质上:

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

我知道上面的语法不正确,但基本上可以输出我需要的内容,但我真的不知道如何使用 mssql 执行此操作。

有什么帮助吗?

最佳答案

基本上你可以找到 mysql 日期与 mssql.Table.Date 列中所有日期的差异。然后你需要从上面的查询中选择最小的差异值。希望下面的查询可以帮助你

 ;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

关于mysql - 使用 PDO 返回最接近表中日期的 Mysql/MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10944276/

相关文章:

sql-server - Azure SQL 数据库定价

php - 自动提交动态选择表单

php - Mailchimp 双重选择加入和网站帐户确认

php - 将输入日期codeigniter转换为mysql

php - Prepared Statements 没有速度优势?

php - 安装迁移 (laravel) 期间 mysql 服务器已经消失错误

php - bCrypt 从数据库获取密码(PDO、PHP)

php - 如何从日期字段中从 MySQL 中减去 12 小时 30 分钟

java - ou 不是 ResultSet - 6.x 版本和 Hibernate 的 MS SQL 驱动程序问题

asp.net - sql server 数据库设计