【问题标题】:How to implement ISNULL and GETDATE into DATEDIFF statement如何在 DATEDIFF 语句中实现 ISNULL 和 GETDATE
【发布时间】:2011-11-08 04:09:33
【问题描述】:

"如果归还日期为 NULL,则该列应使用 ISNULL 和 GETDATE 计算当前租用时长。(即如果没有归还日期,则使用当前日期。)" 目前这是我迄今为止完成的代码的 sn-p,我需要创建一个 ISNULL 和 GETDATE 语句以用于租赁期限。我不确定是否需要使用 IF 语句或在当前配置中将所述语句放在何处。

SELECT mo.Movie_ID                     
 , co.copy_id                      
 , mo.Movie_Name
 , fo.format_name                  
 , c.customer_id
 , rental_ID
 , DATEDIFF (day, rental_date, return_date) AS rental_duration
 , c.first_name + ' ' + c.last_name AS customer_name

提前致谢。任何帮助,将不胜感激。

【问题讨论】:

  • 如果这是家庭作业,请使用homework 标签标记它

标签: sql if-statement getdate


【解决方案1】:
SELECT mo.Movie_ID                     
 , co.copy_id                      
 , mo.Movie_Name
 , fo.format_name                  
 , c.customer_id
 , rental_ID
 , DATEDIFF (day, rental_date, ISNULL(return_date,GETDATE())) AS rental_duration
 , c.first_name + ' ' + c.last_name AS customer_name

应该可以的。

【讨论】:

    【解决方案2】:

    ISNULL 是一个内联语句,当源列不为空时,返回该列,为空时,返回一个替代值。

    SELECT ISNULL(return_date, getdate()) ...
    

    当 return_date 为 null 时,调用函数 getdate() 以返回正确的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      相关资源
      最近更新 更多