Sql 将8:00的值转换为8.00
我想将Sql 将8:00的值转换为8.00,sql,sql-server-2005,Sql,Sql Server 2005,我想将8:00的值转换为8或8.00,这样我就可以将这个数字乘以另一个INT值,如2 现在我收到一条错误消息,上面说: Conversion failed when converting the nvarchar value '8:00' to data type int. 我尝试了CAST(MYCOLUMN作为INT),但没有成功 你能帮忙吗 致以最诚挚的问候,我仍然不确定你在做什么,但是现在确实是一个时间,你希望他们在一个小时内你能做到这一点 SELECT DATEPART(HOUR, C
8:00
的值转换为8
或8.00
,这样我就可以将这个数字乘以另一个INT值,如2
现在我收到一条错误消息,上面说:
Conversion failed when converting the nvarchar value '8:00' to data type int.
我尝试了CAST(MYCOLUMN作为INT)
,但没有成功
你能帮忙吗
致以最诚挚的问候,我仍然不确定你在做什么,但是现在确实是一个时间,你希望他们在一个小时内你能做到这一点
SELECT DATEPART(HOUR, CAST('8:00' AS TIME));
编辑:
SQL 2005没有时间数据类型,因此您必须这样做
SELECT DATEPART(HOUR, CAST('1900-01-01 ' + '8:00' AS DATETIME));
那么:
CAST(replace(MYCOLUMN, ':', '.') AS float)
(这假设国际化设置将
解释为小数点。)
或
8:00是否为时间值,例如8点钟?如果是这种情况,那么仅通过替换
:
->
就无法可靠地进行转换。8:47实际上是8+47/60=8.7833333。8:00的值存储为表中的工作小时数,因此,如果我看到一名员工工作两天,我会将2乘以8:00,这是我得到转换错误的地方,因此我想将8:00替换为8.00的整数值。希望这有意义
CAST(left(mycolumn, charindex(':', mycolumn) - 1) as int)