2013-04-09 103 views
1

我对此很新颖。 我需要在此查询中的单独列中,在t.1start和t1.finish之间的差异天数为 。两天之间的天差

感谢,路易

SELECT ROW_NUMBER() OVER(ORDER BY TOWN) AS 'row', 
T1.Surname, 
T1.Forename, 
T1.Town, 
T1.Description, 
T1.Sex, 
T1.DOB, 
T1.start, 
T1.finish, 
FROM dbo.viewServiceContractFull T1 
WHERE 
T1.finish>='2013/01/01' 
and 
T1.finish<='2013/01/31' 

如何我现在只得到某些城市来在查询?

+0

DATEDIFF(日,开始日期,结束日期),http://stackoverflow.com/questions/1770594/如何计算差异小时 - 小数点之间的两个日期在SQL服务器 – 2013-04-09 06:44:39

+1

什么数据库系统? SQL Server?甲骨文?另外,'start'和'finish'是否包含日期,或者它们是否也包含时间分量?如果后者,差异应该考虑到这些还是忽略它们? – 2013-04-09 06:44:44

回答

0
SELECT ROW_NUMBER() OVER(ORDER BY TOWN) AS 'row', 
T1.Surname, 
T1.Forename, 
T1.Town, 
T1.Description, 
T1.Sex, 
T1.DOB, 
T1.start, 
T1.finish, cast(DATEDIFF(DAY,T1.start,T1.finish) as varchar) as difference 
FROM dbo.viewServiceContractFull T1 
WHERE 
T1.finish>='2013/01/01' 
and 
T1.finish<='2013/01/31' 

另外看看this

+0

谢谢我会试试这个。 Louie – 2013-04-09 06:48:48

+0

@LinaArmiento完成。? – 2013-04-09 07:05:49

+0

现在我怎么只得到2个城镇来查询? – 2013-04-22 01:46:50

0

可以使用DATEDIFF函数来确定两个日期之间的INTERVALL,您可以使用CAST/CONVERT如果需要,您的字符串日期转换为实际日期,如:

CAST('2010-01-22 15:29:55.090' AS DATETIME) 

转换功能,使您能够选择日期的格式。

+0

SQL服务器,它们只包含日期即。 '2013/03/30'如何在我的查询中使用datediff? – 2013-04-09 06:46:44

+0

查看更新回答 – CloudyMarble 2013-04-09 06:51:03

1

在SQL Server,你可以使用

SELECT DATEDIFF (MyUnits, '2010-01-22 15:29:55.090', '2010-01-22 15:30:09.153') 
+0

+1对DATEDIFF – CloudyMarble 2013-04-09 08:08:14