Как реализовать ISNULL и GETDATE в инструкции DATEDIFF

#sql #if-statement #getdate

#sql #if-оператор #getdate

Вопрос:

«столбец должен использовать ISNULL и GETDATE для вычисления текущей продолжительности аренды, если дата возврата равна нулю. (т. Е. Если даты возврата нет, используйте текущую дату.)» В настоящее время это фрагмент кода, который я уже завершил, мне нужно создать инструкцию 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
  

Заранее спасибо. буду признателен за любую помощь.

Комментарии:

1. Если это домашнее задание, пожалуйста, пометьте его homework тегом

Ответ №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 — это встроенная инструкция, которая, когда исходный столбец не равен null, возвращает этот столбец, а когда он равен null, возвращает альтернативное значение.

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

Когда значение return_date равно нулю, вызывается функция getdate() для возврата правильного значения.