mysql - 用于连接名称和日期的 SQL 存储函数
问题描述
我正在尝试编写一个接受日期 (2020-09-04) 和名称的存储函数,然后返回一个字符串,例如名称生日是 2020 年 9 月 4 日。我从下面开始并找到了问题。
DELIMITER //
CREATE FUNCTION concatenate(X CHAR(24),Y date date))
Returns CHAR(50)
BEGIN
declare month char(20);
SELECT month(date, %m) into month;
Return concat(X, 'Birthday is', ' ', month);
END//
DELIMITER ;
解决方案
您需要格式化您想要的日期,因为您必须像 PSalmon 建议的那样使用DATE_FORMAT 。
不应使用像 MONTH 这样的保留字,这会导致注意到的错误,但出于您的目的,使用像 @month 这样的用户定义变量会更简单
利用
DELIMITER //
CREATE FUNCTION concatenate(X CHAR(24),Y date )
Returns CHAR(50)
DETERMINISTIC
BEGIN
declare _month char(20);
SELECT DATE_FORMAT(Y, '%b %d, %Y') INTO _month;
Return concat(X, "'s Birthday is ", _month);
END//
DELIMITER ;
结果
# concatenate('temp','2020-01-01')
temp's Birthday is Jan 01, 2020
或者你使用
DELIMITER //
CREATE FUNCTION concatenate(X CHAR(24),Y date )
Returns CHAR(50)
DETERMINISTIC
BEGIN
SELECT DATE_FORMAT(Y, '%b %d, %Y') INTO @month;
Return concat(X, "'s Birthday is ", @month);
END//
DELIMITER ;
推荐阅读
- python - python中的网络抓取:尝试使用BeautifulSoup从img中给出的url获取坐标
- java - 百里香叶。th:each 不适用于模型属性
- pip - 运行“pip3 install mariadb”时出错
- optaplanner - 提前到达访问时减少停机时间(空闲时间)
- sql - 将带有字典的表连接到不同表中的唯一 id 列
- mysql - gcloud:使用 docker 和容器优化操作系统启动 Cloud SQL Auth 代理时找不到命令
- r - R中的rank函数只返回排名1
- reactjs - 使用 create-react-app 和 storybook 的依赖树错误
- php - Array of images without repetitions in Twig
- angular - DatePipe for time conversion