我创建了一个视图,以返回4个项目,每个项目均基于CURDATE()函数。这四个项目是
- 当前日期的年份。
- 当前日期年份的罗马字母(这使用附加功能转换为罗马数字)。
- 基于某些CASE逻辑的任意年份与当年的年份。
- 基于CASE逻辑的罗马编号与当前的任意年份相同 年(这也使用附加功能转换为罗马数字)。
我需要创建一个anno()
UDF,该UDF将接受日期输入和一个参数,以确定在提供的日期应返回4个结果中的哪个。
我已将完整的预期过程编写为存储的View。
SELECT
YEAR( curdate( ) ) AS 'Current Year',toRoman( YEAR( curdate( ) ) ) AS 'Anno Domini',CASE
WHEN ( date_format( curdate( ),'%m/%d' ) BETWEEN '01/01' AND '10/05' )
THEN ( YEAR ( curdate( ) ) - 1898 )
WHEN ( date_format( curdate( ),'%m/%d' ) BETWEEN '10/06' AND '12/31' )
THEN ( YEAR ( curdate( ) ) - 1897 ) END AS 'Year of the King','%m/%d' ) BETWEEN '01/01' AND '10/05' )
THEN toRoman( ( YEAR ( curdate( ) ) - 1898 ) )
WHEN ( date_format( curdate( ),'%m/%d' ) BETWEEN '10/06' AND '12/31' )
THEN toRoman( ( YEAR ( curdate( ) ) - 1897 ) ) END AS 'Anno Regis'
理想情况下,我希望有一个类似anno(date,arg)
的UDF,并且如果Current Year
,arg = 1
,Anno Domini
,{ {1}}(如果arg = 2
,和Year of the King
,如果arg = 3
。
在我的示例视图中,要弄清楚Anno Regis
= 2019; arg = 4
= MMXIX; Current Year
= 122; Anno Domini
= CXII。
我能够拼凑而成,以达到目标。一般而言,我对MySQL感到满意,而对UDF则是新手。任何帮助或指导将不胜感激。