SQL Server在查询中将datetime转换为int

时间:2011-09-21 19:38:49

标签: sql-server-2008

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

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

我在这里做错了什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

使用DATEDIFF函数:

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

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

答案 1 :(得分:1)

你想要这样的东西

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

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