【问题标题】:Display a date even there is no data [closed]即使没有数据也显示日期[关闭]
【发布时间】:2014-11-21 03:02:34
【问题描述】:

你能帮我看看如何在sql server中显示日期吗?

我的表有数据:

DATE_NOW:
11/18/2014
11/19/2014
11/20/2014

我想显示 2014 年 11 月 21 日

我的代码是这样的:

SELECT 
      CASE WHEN DATE_NOW = '11/21/2014' 
      THEN ORDATE 
      ELSE Convert(DATE, GETDATE ())  
      END AS DATE_NOW 
FROM  TABLE_NAME 
WHERE DATE_NOW = '11/21/2014'

但它不显示任何值。

【问题讨论】:

  • 什么是 ORDATE?此外,如果您没有日期为“2014 年 11 月 21 日”的条目,这将不起作用。
  • 您想显示所有日期和额外的一天,还是只显示现有日期的额外 1 天?
  • 从这个问题上看不出什么。不要让我们猜测你在问什么!
  • 当您使用 WHERE DATE_NOW = '11/21/2014' 时,它将仅过滤该日期。那么为什么需要在 SELECT 语句中给出 CASE WHEN DATE_NOW = '11/21/2014' 呢? @user3705485

标签: sql-server


【解决方案1】:

你可以用铁杆值来检查。

首先检查数值,如果没问题,然后检查日期值和 最后用 ORDATE 改变。

这个逻辑表明数据有什么问题。

SELECT 
      CASE WHEN DATE_NOW = '11/21/2014' 
           THEN 0  --'11/21/2014' --ORDATE 
           ELSE 1 --Convert(DATE, GETDATE ())  
      END AS DATE_NOW 
FROM  TABLE_NAME 
WHERE DATE_NOW = '11/21/2014'

尽管如此,您可以使用 * 并检查数据。

SELECT *,
      CASE WHEN DATE_NOW = '11/21/2014' 
           THEN 0  --'11/21/2014' --ORDATE 
           ELSE 1 --Convert(DATE, GETDATE ())  
      END AS DATE_NOW
FROM  TABLE_NAME 
WHERE DATE_NOW = '11/21/2014'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    相关资源
    最近更新 更多