sql - 将小时数添加到日期值的用户定义函数
问题描述
我正在尝试创建一个 UDF 以使用 SSMS 添加 3 小时的日期值,并且在调用该函数时一直遇到以下错误;
从字符串转换日期和/或时间时转换失败
这就是我对 UDF 的称呼:
SELECT TOP 5 dbo.to_eat('updated') FROM SCHEMA.TABLE_NAME
我创建函数的查询如下;
CREATE FUNCTION [dbo].[to_eat](@date_field NVARCHAR(20)) RETURNS CHAR(20) AS
BEGIN
RETURN CASE
WHEN @date_field <>'' AND @date_field IS NOT NULL AND @date_field <> '1900-01-01 00:00:00.0' THEN DATEADD(HOUR, -3, @date_field)
-- WHEN @rating = 'AA' OR @rating LIKE 'AA[+-]' THEN 2
-- WHEN @rating = 'BBB' OR @rating LIKE 'BBB[+-]' THEN 3
ELSE NULL
END
END
解决方案
您应该删除列名周围的单引号,否则它是一个文字字符串,而不是列名:
SELECT TOP 5 dbo.to_eat(updated) FROM SCHEMA.TABLE_NAME
推荐阅读
- python - 如何使用 aiohttp (python 3.6) 实现 websocket 感知反向代理
- python - Scrapy 分页在多个列表中失败
- java - OpenOffice + jodconverter 的字体问题
- jquery - Ajax 无法使用实体框架 linq 响应
- javascript - 找到与任意形状四边形相交的规则网格单元
- python - 改变矩形的不透明度
- jquery - 引导程序使用什么来使背景被动
- java - Selenium Web 驱动程序中的选择器问题
- json - WordPress Cron Job 导入帖子
- android - 根据字符串长度截断 TextView