Mik*_*ike 1 sql sql-server datediff
我的约会声明中有错误.评论dateiff和'Nothing clicked'位工作正常.我认为它与日期变量的格式有关.
错误信息..
消息245,级别16,状态1,行2转换将varchar值'Nothing clicked'转换为数据类型int时失败.
select
case
when stVs.DateLastAction is null then 'Nothing clicked'
else DATEDIFF(MI,StVs.DateSessionStarted,stVs.DateLastAction)
end as test
From Stats_VisitorSessions StVs
Run Code Online (Sandbox Code Playgroud)
尝试:
select
case
when stVs.DateLastAction is null then 'Nothing clicked'
else CONVERT(varchar(30),DATEDIFF(MI,StVs.DateSessionStarted,stVs.DateLastAction))
-- ^^^^^^^^^^^^^^^^^^^^ ^
end as test
From Stats_VisitorSessions StVs
Run Code Online (Sandbox Code Playgroud)
如果test结果集列是数字或字符串,则TSQL很难解析.
一个CASE表达式只能返回一个数据类型.它不能同时返回数字和字符串数据类型.在OP的情况下,它决定一个数字数据类型,然后它处理更多的行,并发现它需要是一个字符串,它失败.请参见数据类型优先级.
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |