使用正则表达式在MYSQL中使用子串

时间:2014-03-05 11:03:56

标签: mysql postgresql

我有以下postGreSQL代码,我需要让它在MYSQL上运行

  v_start_date := to_date(substring( paramweek, '^...........'), 'DD Mon YYYY');
    v_end_date := to_date(substring( paramweek, '...........$'),'DD Mon YYYY');

where 
^ beginning of line
$ end of line

and paramweek is a character varying 

我尝试过运行,但它没有在MYSQL中提供任何o / p

1 个答案:

答案 0 :(得分:1)

TO_DATE()不是MySQL中的已知函数。最接近的是STR_TO_DATE(),这要求使用DATE_FORMAT()下记录的格式说明符给出日期格式。

SUBSTRING()是一个已知的MySQL函数,但它的两个参数版本采用索引位置来从中切割第一个参数。没有本机MySQL函数可以从正则表达式匹配中检索子字符串。但是,在这种情况下,您只能使用LEFT()RIGHT()

SET v_start_date := STR_TO_DATE( LEFT(paramweek, 11), '%d %b %Y'),
    v_end_date   := STR_TO_DATE(RIGHT(paramweek, 11), '%d %b %Y');