SSRS表达式需要在特定的空格/字符实例后修剪字符串

时间:2016-02-05 11:02:41

标签: sql string reporting-services

我正在尝试修剪一个长字符串,其中包含SSRS中表达式中最后的时间和日期。例如,我有一个如下字符串:

  

cn = bob smith,ou = gastro,ou = bht,dc = hospital,dc = int jane doe 2015年12月29日15:12:44

我希望提取' 2015年12月29日15:12:44 '部分。不幸的是,字符串的所有其他文本部分都是可变的,并且由于月份被写为整个月份名称(而不是Jan / Feb等),因此长度也是可变的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果字符串来自SQL查询,则可以在查询中使用正则表达式来获取日期。

SELECT
  REGEXP_SUBSTR(
    'int jane doe 29 December 2015 15:12:44',
    '(\d)+\s(January|February|March|April|May|June|July|August|September|October|Novemeber|December)(.)+'
  ) date_text
FROM DUAL

此查询适用于Oracle 11g数据库,并提供结果:

DATE_TEXT
29 December 2015 15:12:44

正则表达式查找数字的第一个实例,后跟月份名称,并将其作为子字符串以及之后的所有字符提供,以获取年份和时间。这假设没有其他日期,日期和月份将始终采用这种格式(12月29日或12月29日等)。

Regular expression visualization

Debuggex Demo