SQL空日期返回1900-01-01

时间:2016-05-26 20:23:34

标签: sql sql-server

以下是我的查询的一部分:

<!DOCTYPE HTML>
<html>
  <head>
    <title>Example</title>
    <style>
      body {
        margin: 0;
        padding: 0;
        background: #000;
      }
      canvas {
        margin: 0 auto;
      }
    </style>
    <script src="./assets/js/phaser.min.js"></script>
    <script>
    var game = new Phaser.Game(2280, 1440, Phaser.CANVAS, '', {
      preload: function() {
        game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
        game.load.spritesheet('help', 'assets/img/help-button.png', 130, 130);
      },
      create: function() {
        var help = game.add.sprite(0, 0, 'help', 0);
        help.inputEnabled = true;
        help.input.useHandCursor = true;
      }
    });

    function resizeGame() {
      this.scale.refresh();
    }

    window.onresize = resizeGame.bind(game);
    </script>
  </head>
  <body>
    <div id="game"></div>
    <audio id="audio" controls style="display:none">
      Your browser does not support the audio element.
    </audio>
  </body>
</html>

IsNull(CONVERT(date, V_CONSTAT_ACTUAL_DATES.ID50), '') AS 'actualFinish' 是NULL并且是日期时间列。所以我得到的结果是1900-01-01,我要做的就是只返回V_CONSTAT_ACTUAL_DATES.ID50我将如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

现在混合使用类型肯定是个问题。

如果要为空日期显示空字符串,则需要将日期转换为短日期时间字符串而不是日期。您可以使用convert功能来执行此操作。最后一个参数接受样式代码,因此您可以只显示日期部分。

COALESCE(CONVERT(varchar(8), V_CONSTAT_ACTUAL_DATES.ID50, 101), '') AS 'actualFinish'

如果列不为空,则以mm / dd / yy格式显示日期,如果为空,则显示空字符串。

要查看有关日期到字符串转换的详情,请转到https://msdn.microsoft.com/en-us/library/ms187928.aspx