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 instanceof DatabaseFunction) {
			return ((DatabaseFunction) value).getValue();
		} else if (database.getDatabaseFunctions().contains(new DatabaseFunction(value.toString()))) {
			return value.toString();
		}

		return database.getDateTimeLiteral(((java.sql.Timestamp) value));
	}
}

@@ -170,17 +170,20 @@
 Type %7B%0D%0A
-%09
+    
 public D
@@ -195,26 +195,32 @@
 meType() %7B%0D%0A
-%09%09
+        
 super(%22DATET
@@ -233,23 +233,29 @@
 0, 1);%0D%0A
-%09
+    
 %7D%0D%0A%0D%0A
-%09
+    
 public D
@@ -290,18 +290,24 @@
 ame) %7B%0D%0A
-%09%09
+        
 super(da
@@ -326,23 +326,29 @@
 0, 1);%0D%0A
-%09
+    
 %7D%0D%0A%0D%0A
-%09
+    
 @Overrid
@@ -346,25 +346,28 @@
  @Override%0D%0A
-%09
+    
 public boole
@@ -395,18 +395,24 @@
 on() %7B%0D%0A
-%09%09
+        
 return t
@@ -417,23 +417,29 @@
  true;%0D%0A
-%09
+    
 %7D%0D%0A%0D%0A
-%09
+    
 @Overrid
@@ -441,17 +441,20 @@
 erride%0D%0A
-%09
+    
 public S
@@ -517,18 +517,24 @@
 ase) %7B%0D%0A
-%09%09
+        
 if (valu
@@ -543,27 +543,36 @@
 == null) %7B%0D%0A
-%09%09%09
+            
 return null;
@@ -573,18 +573,24 @@
  null;%0D%0A
-%09%09
+        
 %7D else i
@@ -626,27 +626,36 @@
 unction) %7B%0D%0A
-%09%09%09
+            
 return ((Dat
@@ -689,18 +689,24 @@
 lue();%0D%0A
-%09%09
+        
 %7D else i
@@ -739,16 +739,59 @@
 ctions()
+ != null && database.getDatabaseFunctions()
 .contain
@@ -840,11 +840,20 @@
  %7B%0D%0A
-%09%09%09
+            
 retu
@@ -878,17 +878,29 @@
 );%0D%0A
-%09%09%7D%0D%0A%0D%0A%09%09
+        %7D%0D%0A%0D%0A        
 retu
@@ -966,9 +966,12 @@
 );%0D%0A
-%09
+    
 %7D%0D%0A%7D

Fix NullPointerException