使用Getdate()和patindex计算日期

时间:2012-07-17 09:42:51

标签: sql sql-server getdate patindex

希望这是一个简单的

  1. 我想用getdate()告诉我今天的日期(完成),
  2. 然后我想从列(Don)中取出数字部分
  3. 然后我想添加1和2并生成一个名为“Date Expires”的列。例如,如果aplhanumeric列被称为CalendarHeaders.Description我将使用Patindex来获取数字部分,但我的问题是如何将patindex结果添加到getdate()以便我可以获得实际的到期日期?
  4. 示例数据

    CalendarHeaders.Description 
    2 Days from today
    5 Days from today
    10 Days from today
    
    到目前为止

    示例查询

    SELECT      
      left(CalendarHeaders.Description, patindex('%[^0-9]%',  CalendarHeaders.Description+'.') - 1) as Expiration, 
      GETDATE()as DateSold 
    

    示例结果(缺少DateExpires)

    Expiration          Datesold                    DateExpires
    2                   2012-07-17 04:26:10.283      2012-07-19 04:26:10.283
    5                   2012-07-17 04:26:10.283      2012-07-22 04:26:10.283
    10                  2012-07-17 04:26:10.283      2012-07-27 04:26:10.283
    

1 个答案:

答案 0 :(得分:0)

您可以DATEADD解析的日期到今天的日期;

dateadd(DAY, cast(left(CalendarHeaders.Description, patindex('%[^0-9]%',  CalendarHeaders.Description+'.') - 1) as int), getdate()) AS DateExpires