Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
yidasanqian committed Oct 23, 2017
1 parent 45ac8c8 commit ebe2c3d
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/main/java/net/sf/jsqlparser/expression/TimestampValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,17 @@
public class TimestampValue implements Expression {

private Timestamp value;

private char quotation = '\'';
public TimestampValue(String value) {
this.value = Timestamp.valueOf(value.substring(1, value.length() - 1));
if (value == null) {
throw new java.lang.IllegalArgumentException("null string");
} else {
if (value.charAt(0) == quotation) {
this.value = Timestamp.valueOf(value.substring(1, value.length() - 1));
} else {
this.value = Timestamp.valueOf(value.substring(0, value.length()));
}
}
}

@Override
Expand Down
74 changes: 74 additions & 0 deletions src/test/java/net/sf/jsqlparser/expression/TimestampValueTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package net.sf.jsqlparser.expression;

import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.ItemsListVisitor;
import net.sf.jsqlparser.expression.operators.relational.MultiExpressionList;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.statement.insert.Insert;
import net.sf.jsqlparser.statement.select.SubSelect;
import org.junit.Test;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
* @author Linyu Chen
*/
public class TimestampValueTest {

@Test
public void testTimestampValue() throws JSQLParserException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
final String currentDate = dateFormat.format(new Date());
Insert insert = (Insert) CCJSqlParserUtil.parse("insert into mytable (col1) values (1)");
System.out.println(insert.toString());
// adding a column
insert.getColumns().add(new Column("create_time"));
// adding a value using a visitor
insert.getItemsList().accept(new ItemsListVisitor() {

public void visit(SubSelect subSelect) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void visit(ExpressionList expressionList) {
expressionList.getExpressions().add(new TimestampValue(currentDate));
}

public void visit(MultiExpressionList multiExprList) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
System.out.println(insert.toString());
}

@Test
public void testTimestampValueWithQuotation() throws JSQLParserException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
final String currentDate = dateFormat.format(new Date());
Insert insert = (Insert) CCJSqlParserUtil.parse("insert into mytable (col1) values (1)");
System.out.println(insert.toString());
// adding a column
insert.getColumns().add(new Column("create_time"));
// adding a value using a visitor
insert.getItemsList().accept(new ItemsListVisitor() {

public void visit(SubSelect subSelect) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void visit(ExpressionList expressionList) {
expressionList.getExpressions().add(new TimestampValue("'" + currentDate + "'"));
}

public void visit(MultiExpressionList multiExprList) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
System.out.println(insert.toString());
}
}

0 comments on commit ebe2c3d

Please sign in to comment.