SQL - 使用ISNULL,DATEDIFF和GETDATE的计算列

时间:2011-11-06 09:36:46

标签: sql datediff calculated-columns isnull getdate

我正在使用SQL Server MS。 我在编写这个脚本时遇到了麻烦:

CREATE VIEW rental_view
AS SELECT 
  m.movie_id, movie_name, co.copy_id, f.format_id, format_name, cu.customer_id,
 (first_name + ' ' + surname) AS customer_name, rental_id, rental_date, 
 return_date, ISNULL(return_date, DATEDIFF(dd, rental_date, GETDATE())) 
 AS rental_duration 
FROM movie AS m INNER JOIN copy AS co
ON m.movie_id = co.movie_id
INNER JOIN format AS f
ON co.format_id = f.format_id
INNER JOIN rental 
ON co.copy_id = rental.copy_id
INNER JOIN customer AS cu
ON rental.customer_id = cu.customer_id

这样做的目的是在select中创建指定列的视图。指定的最后一列是一个计算列,用于计算租赁超出租赁日期的天数(仅当return_date值为NULL时)并将其显示为INT。 根据我的理解,我在正确的轨道上,但显然不是,因为在执行时,该列中显示的值是DATATIME数据类型值,并且没有意义。

感谢我能得到的任何帮助。

0 个答案:

没有答案