在用户定义的函数(mysql)中格式化日期

时间:2019-04-06 15:04:03

标签: mysql date formatting user-defined-functions

我已经完成了学校的作业,但是如果我在用户定义的函数中格式化日期,则会获得额外的学分。这是工作代码:

DROP FUNCTION IF EXISTS in_sentence_form;

DELIMITER $$

CREATE FUNCTION in_sentence_form (u_name TEXT, b_date DATE)
RETURNS TEXT DETERMINISTIC
BEGIN
    DECLARE full_sentence TEXT;
    SET full_sentence = CONCAT(u_name,' was born on ',b_date,'.');
    RETURN full_sentence;
END$$

DELIMITER ;

但是,输出仅为“ John Doe出生于2001-01-01”(姓名在左侧,日期在右侧);但是如果我希望输出显示为:“ John Doe于2001年1月1日星期三出生,该怎么办?”

我知道如何格式化日期:

DATE_FORMAT(b_date, '%W %D %M %Y');

但事实证明不可能在说明符之间插入字符串和字符,例如“ the”,“ of”,“ ...”。

在线搜索无法正常工作,因为我的搜索字词必须与其他人使用的日期字符串几乎完全一样

1 个答案:

答案 0 :(得分:0)

您可以在格式字符串中插入文字。

array.sort(by: {
    let first = $0.priority == 0 ? Int.random(in: -1000..<1) : $0.priority
    let second = $1.priority == 0 ? Int.random(in: -1000..<1) : $1.priority
    return first > second
})

例如:

date_format(b_date, '%W, the %D of %M, %Y')

将导致

SELECT date_format(now(), '%W, the %D of %M, %Y');

db<>fiddle