diff --git a/src/sqlParser.jison b/src/sqlParser.jison
index 4a8efbc..cba1ab1 100644
--- a/src/sqlParser.jison
+++ b/src/sqlParser.jison
@@ -91,6 +91,30 @@ MODE                                                              return 'MODE'
 OJ                                                                return 'OJ'
 LIMIT                                                             return 'LIMIT'
 UNION                                                             return 'UNION'
+SECOND                                                            return 'IDENTIFIER'
+MINUTE                                                            return 'IDENTIFIER'
+HOUR                                                              return 'IDENTIFIER'
+SECONDS                                                           return 'IDENTIFIER'
+MINUTES                                                           return 'IDENTIFIER'
+HOURS                                                             return 'IDENTIFIER'
+YEAR                                                              return 'IDENTIFIER'
+MICROSECOND                                                       return 'IDENTIFIER'
+DAY                                                               return 'IDENTIFIER'
+WEEK                                                              return 'IDENTIFIER'
+MONTH                                                             return 'IDENTIFIER'
+QUARTER                                                           return 'IDENTIFIER'
+SECOND_MICROSECOND                                                return 'IDENTIFIER'
+MINUTE_MICROSECOND                                                return 'IDENTIFIER'
+MINUTE_SECOND                                                     return 'IDENTIFIER'
+HOUR_MICROSECOND                                                  return 'IDENTIFIER'
+HOUR_SECOND                                                       return 'IDENTIFIER'
+HOUR_MINUTE                                                       return 'IDENTIFIER'
+DAY_MICROSECOND                                                   return 'IDENTIFIER'
+DAY_SECOND                                                        return 'IDENTIFIER'
+DAY_MINUTE                                                        return 'IDENTIFIER'
+DAY_HOUR                                                          return 'IDENTIFIER'
+YEAR_MONTH                                                        return 'IDENTIFIER'
+INTERVAL                                                          return 'INTERVAL'
 
 ","                                                               return ','
 "="                                                               return '='
@@ -427,6 +451,8 @@ expr
   | expr OR expr { $$ = { type: 'OrExpression', operator: $2, left: $1, right: $3 } }
   | expr AND expr { $$ = { type: 'AndExpression', operator: $2, left: $1, right: $3 } }
   | expr XOR expr { $$ = { type: 'XORExpression', left: $1, right: $3 } }
+  | INTERVAL expr IDENTIFIER { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
+  | INTERVAL expr INTERVAL { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
   ;
 expr_list
   : expr { $$ = { type: 'ExpressionList', value: [ $1 ] } }
diff --git a/src/stringify.js b/src/stringify.js
index 635e801..2335586 100644
--- a/src/stringify.js
+++ b/src/stringify.js
@@ -551,6 +551,12 @@ Sql.prototype.travelSelectParenthesized = function(ast) {
   this.travel(ast.value);
   this.appendKeyword(')');
 };
+
+Sql.prototype.travelIntervalExpression = function (ast) {
+  this.appendKeyword('interval');
+  this.travel(ast.value);
+  this.appendKeyword(ast.unit);
+};
 Sql.prototype.travelPlaceHolder = function (ast) {
   if (ast.left) {
     this.travel(ast.left);
diff --git a/test/main.test.js b/test/main.test.js
index 2ee9c1b..b5139e4 100644
--- a/test/main.test.js
+++ b/test/main.test.js
@@ -411,6 +411,19 @@ describe('select grammar support', function () {
   it('bugfix table alias2', function () {
     testParser('select a.* from a t1 join b t2 on t1.a = t2.a')
   });
+
+  it('bugfix unit_of_time1', function() {
+    testParser(`
+      SELECT a, b, DATE_SUB(NOW(),INTERVAL 1 YEAR) as time from t1
+    `)
+  });
+
+  it('bugfix unit_of_time1', function() {
+    testParser(`
+      SELECT a, b from t1 where created_at >= DATE_SUB(NOW(),INTERVAL 1 MONTH)
+    `)
+  });
+  
   it('place holder support', function() {
     testParser(
     "select sum(quota_value) value, busi_col2 as sh, ${a} as a, YEAR(now()) from der_quota_summary where table_ename = 'gshmyyszje_derivedidx' and cd = (select id from t1 where a = ${t1})"