在字符串

时间:2016-05-30 17:32:12

标签: mysql

这是我的表格。生效日期是用户输入,然后我需要使用产生打印的触发器,具体取决于用户输入的语言(仅限英语或法语)。

对于英语,我使用DATE_FORMAT来实现输出,如图所示,但是对于法语,我创建了另一个包含所有法语月份的表格,然后我用它来获取我需要的月份。

但是,我在使用这3个变量生成字符串时无法创建最终日期。

主表:

╔══════════╤════════════════╤═════════════╗
║ Language │ Effective Date │ Print       ║
╠══════════╪════════════════╪═════════════╣
║ English  │ 23/05/2016     │ 23 May 2016 ║
╟──────────┼────────────────┼─────────────╢
║ French   │ 23/05/2016     │             ║
╚══════════╧════════════════╧═════════════╝

法国月份表:

╒═════╤═════════╕
│ num │ Month   │
╞═════╪═════════╡
│ 1   │ Janvier │
├─────┼─────────┤
│ 2   │ Fevrier │
├─────┼─────────┤
│ 3   │ Mars    │
╘═════╧═════════╛
and so on...

触发码:

BEGIN 

  IF NEW.language = "English" 
  THEN
  SET NEW.print = DATE_FORMAT(NEW.date, '%d %M %Y');
  END IF;

  IF NEW.language = "French"
  THEN
  SET @f_day = EXTRACT(DAY FROM new.date);
  SET @f_month = (SELECT month FROM `french_month` WHERE num = EXTRACT(MONTH FROM NEW.date));
  SET @f_year = EXTRACT(YEAR FROM new.date);
  SET NEW.print = @f_day @f_month @f_year; //I just need to display these 3 variables together 
  END IF; 

END

0 个答案:

没有答案