sql - 如果在 case 语句中为 null,则将日期时间转换为字符串“待定”
问题描述
在我的视图设置中更改我的列之一时,我有一个问题:
CASE
WHEN L.updateTime IS NULL
THEN ISNULL(CONVERT(VARCHAR(20), L.updateTime, 120), 'PENDING')
ELSE L.updateTime
END AS updateTime
命令成功,但是当我尝试选择前 1000 名时,却显示错误:
从字符串转换日期和/或时间时转换失败
我已经尝试了所有我能想到的选项,但没有任何效果有什么建议吗?
试过:
CASE
WHEN L.updateTime IS NULL
THEN 'PENDING'
ELSE L.updateTime
END AS updateTime
CASE
WHEN L.updateTime IS NULL
THEN CONVERT(VARCHAR(20), 'PENDING')
ELSE L.updateTime
END AS updateTime
CASE
WHEN L.updateTime IS NULL
THEN ISNULL(L.updateTime, 'PENDING')
ELSE L.updateTime
END AS updateTime
和许多其他人......
我看到了这个现有的问题并尝试了它,但是当我尝试查看我的视图时仍然出现错误。 如果为空值,则将日期时间转换为字符串 - 保持原始日期时间格式
解决方案
我想通了......我只需要在语句的 else 部分中也转换日期时间......以确保在 case 语句中都采用相同的字符串格式(因为我正在转换为字符串)
感谢@Lamak 的指导!
CASE WHEN L.updateTime IS NULL THEN ISNULL(CONVERT(varchar(20), L.updateTime, 120),'PENDING') ELSE CONVERT(varchar(20), L.updateTime, 120) END AS updateTime
推荐阅读
- python - 在 href Beautifulsoup 之后解析文本
- python - 在python中查找特定分钟的下一次出现
- vb.net - VB.NET 应用程序性能分析 Visual Studio 2019
- python-3.x - 如何重置 .groupby 输出中的索引?
- scripting - autohotkey:按下 LButton 后取消 RButton 用户输入
- javascript - 2 slick carousel init 方法的问题
- android - 使用 Expo React Native 构建后,Android APK 无法正常工作
- python - 正确使用带有列表的python map
- c++ - 循环中的 C++ 范围锁阻塞另一个线程
- html - 为什么我的 Fancybox 窗口会立即打开和关闭?