package liquibase.database.structure.type; import liquibase.statement.DatabaseFunction; import liquibase.database.Database; public class DateTimeType extends DataType { public DateTimeType() { super("DATETIME", 0, 1); } public DateTimeType(String dataTypeName) { super(dataTypeName, 0, 1); } @Override public boolean getSupportsPrecision() { return true; } @Override public String convertObjectToString(Object value, Database database) { if (value == null) { return null; } else if (value.toString().equalsIgnoreCase("null")) { return "null"; } else if (value.toString().equals("CURRENT_TIMESTAMP()")) { return database.getCurrentDateTimeFunction(); } else if (value instanceof DatabaseFunction) { return ((DatabaseFunction) value).getValue(); } else if (database.getDatabaseFunctions().contains(new DatabaseFunction(value.toString()))) { return value.toString(); } else if (value instanceof String) { return "'"+((String) value).replaceAll("'","''")+"'"; } return database.getDateTimeLiteral(((java.sql.Timestamp) value)); } }