Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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
C# 从字符串4转换日期时间时出现语法错误_C#_Sql_Datetime - Fatal编程技术网

C# 从字符串4转换日期时间时出现语法错误

C# 从字符串4转换日期时间时出现语法错误,c#,sql,datetime,C#,Sql,Datetime,执行以下代码时出现此代码错误。。我们将不胜感激 DECLARE @Last_Timestamp DATETIME, @New_Timestamp DATETIME SELECT DISTINCT Rtrim(of_displayname) + ' (' + Rtrim(ro_officer) + ')', CONVERT(DATETIME, CONVERT(CHAR(11), ro_shift_start

执行以下代码时出现此代码错误。。我们将不胜感激

DECLARE @Last_Timestamp DATETIME, 
        @New_Timestamp  DATETIME 

SELECT DISTINCT Rtrim(of_displayname) + ' (' 
                + Rtrim(ro_officer) + ')', 
                CONVERT(DATETIME, CONVERT(CHAR(11), ro_shift_start, 106), 106), 
                Rtrim(ac_name) + ' (' + Rtrim(ac_pin) + ')', 
                ro_officer 
FROM   roster WITH(nolock), 
       template WITH(nolock), 
       activity WITH(nolock), 
       officer WITH(nolock) 
WHERE  ro_status = 'INFO' 
       AND ro_activity IN ( 'LEAVE', 'SAL LEAVE' ) 
       AND ro_timestamp > @Last_Timestamp 
       AND ro_timestamp <= @New_Timestamp 
       AND ro_shift_start > Getdate() 
       AND ac_pin = to_activity 
       AND to_pin = ro_officer 
       AND Unicode(to_type) = Unicode('M') 
       AND ro_officer = of_pin 
       --AND (Of_Payroll_No    IN ('w','s')   
       AND ac_product_code IN ( '01', '09' ) /* Corporate Only */ /* W & S */ 
UNION 
SELECT [officer], 
       [activity], 
       [status], 
       [comment] 
FROM   production.rolecall.[dbo].[holidayrequest] 
ORDER  BY Rtrim(of_displayname) + ' (' 
          + Rtrim(ro_officer) + ')',RTRIM(Of_Displayname)  + ' (' + RTRIM(Ro_Officer) + ')',CONVERT(DATETIME,CONVERT(CHAR(11), RO_Shift_Start,106),106)

这里有3个地方可以进行日期转换:

CONVERTDATETIME,CONVERTCHAR11,ro_shift_start,106,106 CONVERTDATETIME,CONVERTCHAR11,RO_Shift_Start,106106 尤宁人 前两个看起来好像你真的想在没有时间的情况下度过一天。如果是这样的话:没有时间的一天;有多种方法可以做到这一点,但在最新版本的sql server中,将其强制转换为日期可以很好地工作:

select cast(columnname as date) as [columnname]
或者,如果您确实需要它作为日期时间:

在其他数据库版本上,可以使用sneeky将其转换为浮点方法:

select cast(floor(cast(columnname as float)) as datetime) as [columnname]

联盟更有趣;看起来这些是非常不同的形状-在这种情况下:你为什么要联合它们?我非常怀疑[活动]是否是日期时间,但它将成为该专栏的一部分。此错误完全可能来自尝试将[activity]转换为日期时间。

请添加错误消息和DDL数据库定义。Msg 241,16级,状态1,第1行语法错误从字符串转换日期时间。您是否尝试检查ro_shift_start的内容,查看它们是否与预期格式匹配?尽管需要注意的是,由于@Last_Timestamp和@New_Timestamp都是空的,我们不应该期望在顶部网格中有任何行……通过查看您的代码,您正在将ro_shift_start转换为char,然后再次转换为datetime,您不能使用ro_shift_start而不是CONVERTDATETIME、CONVERTCHAR11、ro_shift_start,106?@KiranHegde我猜这是为了得到没有时间的日期——在这种情况下,可以使用其他方法,但同样:显示的方法应该很好,但效率低下;在这种情况下,我强烈怀疑真正的问题是工会
select cast(floor(cast(columnname as float)) as datetime) as [columnname]