【问题标题】:Querying MySql in SQL Server via openquery - "0000-00-00" rows not showing通过 openquery 在 SQL Server 中查询 MySql - “0000-00-00”行未显示
【发布时间】:2014-05-22 11:35:31
【问题描述】:

我的设置如下。我有一个 MySQL 数据库 (5.5.34),我使用 MySQL ODBC 5.2 驱动程序通过 ODBC 作为“链接服务器”链接到 MS SQL。

MySQL查询如下:

SELECT
CASE WHEN start = "0000-00-00" THEN NULL else start END as start,
CASE WHEN finish = "0000-00-00" THEN NULL else finish END as finish
FROM students

当在源服务器上的 phpmyadmin 中运行时,我得到一堆行,其中一些带有日期,一些在开始和/或结束列中带有 NULL。到目前为止一切顺利。

现在我尝试将其放入 openquery 并通过 SQL Server Management Studio 从 SQL Server 运行整个思考。

SELECT *    
FROM openquery(OLDSYSTEM, '
    SELECT
    CASE WHEN start = "0000-00-00" THEN NULL else start END as start,
    CASE WHEN finish = "0000-00-00" THEN NULL else finish END as finish
FROM students')

现在所有的开始和结束都是空的。我对此感到困惑:/如果有人在我得到提示之前解决了这个问题。

【问题讨论】:

    标签: mysql sql-server null odbc linked-server


    【解决方案1】:

    事实证明,问题在于 MsSQL 能够将日期存储在不转换为日期的日期列中,即。 00 在月和/或 00 在日部分。

    换句话说,我们都类似于 2014-12-00 或 2013-00-00 的日期 - 我只是没有注意到。

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2015-07-19
      • 2012-11-17
      • 1970-01-01
      • 2017-09-21
      相关资源
      最近更新 更多