我有一列Date,如下所示:
+-----------+
| Date |
+-----------+
| 20140611 |
| 20150119 |
| 20150922 |
| 20160310 |
+-----------+
它是一个YYYYMMDD
格式的字符串。
我想创建一个名为Quarter
的新列,如下所示:
+-----------+-------------+
| Date | Quarter |
+-----------+-------------+
| 20140611 | Q2-2014 |
| 20150119 | Q1-2015 |
| 20150922 | Q3-2015 |
| 20160310 | Q3-2016 |
+-----------+-------------+
其中CCD_ 3指示对应的CCD_。
这只是为了举例,但我实际上想知道如何编写一个函数,该函数可以应用于表的一列,以便在经过一些预定义的处理后创建一个新列。
使用季度函数
select `Date`, QUARTER(`date`) as Quarter
from my_table ;
否则,如果你正在寻找用户定义的功能,你可以使用
CREATE FUNCTION hello_world(my_text TEXT)
RETURNS TEXT
LANGUAGE SQL -- This element is optional and will be omitted from
BEGIN
RETURN CONCAT('Hello ', my_text);
END;
$$
DELIMITER ;
然后
SELECT hello_world('Earth');
return Hello Earth
http://dev.mysql.com/doc/refman/5.7/en/create-function-udf.html