2011-09-21 130 views
0

我有一个字段,其中包含午夜后的时间(以秒为单位),但是SQL Server只会将其显示为datetime yyyy-mm-dd hh.ss.xxx。我试图查询这个数据,并将数据转换为午夜后的数据,它应该是这样的,例如01:00将是3600SQL Server将datetime转换为查询中的int

我试过SELECT CONVERT(int, timefield)但结果是名为(无列名称)的列,值为-1或-2。

我在这里做错了什么?

感谢您的帮助!

回答

3

使用功能DATEDIFF:

SELECT DATEDIFF(SECOND, 0, '12:00:00') 

http://www.eggheadcafe.com/software/aspnet/35057980/mssql-timetosec.aspx

+0

谢谢!我必须将startdate从0更改为它指定的那个,但是它的工作完美。 – tfp

+0

大声笑,这就是我得到的努力使它更好:)我会编辑帖子。 – Dave

+0

此外,如果这可以解决您的问题,您可能需要将其标记为答案。 – Dave

1

你想是这样的

SELECT [Total Seconds] = 
    (DATEPART(hh, GETDATE()) * 3600) + 
    (DATEPART(mi, GETDATE()) * 60) + DATEPART(ss, GETDATE()) 

希望我的回答可以帮助您解决您的问题。

+0

感谢您的回复,但在这一点上我不清楚如何使用它。 – tfp

+0

用您的数据库列替换GETDATE()它将完美工作:) –

+0

现在就可以了 - 非常感谢!对不起,如果这是一个新手问题,但我刚刚(被迫)开始与sql – tfp