Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从hhmmss到hhmm的日期转换在sql中返回错误_Sql_Sql Server_Date_Reporting Services_Type Conversion - Fatal编程技术网

从hhmmss到hhmm的日期转换在sql中返回错误

从hhmmss到hhmm的日期转换在sql中返回错误,sql,sql-server,date,reporting-services,type-conversion,Sql,Sql Server,Date,Reporting Services,Type Conversion,我的SQL Server表中有StartTime和EndTime列,显示为hhmmss(例如:090000) 我希望使用将其转换为9:30 CONVERT(varchar(5), StartTime, 108) AS Start_Time, CONVERT(varchar(5), EndTime, 108) AS End_Time 但我有一个错误: 将varchar数据类型转换为datetime数据类型导致值超出范围 任何输入?如果您的值是datetime数据类型,则可以使用format

我的SQL Server表中有
StartTime
EndTime
列,显示为
hhmmss
(例如:
090000

我希望使用将其转换为
9:30

 CONVERT(varchar(5), StartTime, 108) AS Start_Time, 
 CONVERT(varchar(5), EndTime, 108) AS End_Time
但我有一个错误:

将varchar数据类型转换为datetime数据类型导致值超出范围


任何输入?

如果您的值是datetime数据类型,则可以使用format函数

FORMAT(StartTime, 'hhmm') AS Start_Time,
FORMAT(EndTime, 'hhmm') AS End_Time

查看示例并阅读更多信息。

如果您的时间列的数据类型为int,则应尝试如下操作:

DECLARE @yourtime AS INT = '093000'
SELECT CONVERT(VARCHAR(5),STUFF(STUFF(STUFF(@yourtime ,1 ,0 ,REPLICATE('0' ,6- LEN(@yourtime))),3,0,':'),6,0,':'),108) AS Start_Time,
CONVERT(VARCHAR(5),STUFF(STUFF(STUFF(@yourtime ,1 ,0 ,REPLICATE('0' ,6- LEN(@yourtime))),3,0,':'),6,0,':'),108) AS End_Time
或者,如果您想将其设置为SSRS表达式,您应该在下面尝试

=Format(Fields!StartTime.Value,"hh:mm")

=Format(Fields!EndTime.Value,"hh:mm")

你的时区是什么?您可以使用
IsDate()
查看
StartTime
EndTime
是否也是无效日期。starttime和endtime的数据类型是什么?我目前不知道该代码如何返回该错误消息。您似乎正在从datetime数据类型转换为varchar(5),但错误消息显示的情况正好相反。您确定不想将这些值插入datetime字段吗?您确实应该将格式设置留给前端,并将数据作为本机类型返回。我希望您使用的是时间数据类型,但我感觉您不是。@Jon数据类型是datetime这不是您的错误消息所说的-一定有一些误解。是的,数据类型是datetime。你知道我如何在sql查询中使用它吗?我在回答中添加了示例和msdn链接。