diff --git a/org.eclipse.osbp.preferences.ui.page/src/org/eclipse/osbp/preferences/ui/page/PreferencePageBI.java b/org.eclipse.osbp.preferences.ui.page/src/org/eclipse/osbp/preferences/ui/page/PreferencePageBI.java
new file mode 100644
index 0000000..c815cbd
--- /dev/null
+++ b/org.eclipse.osbp.preferences.ui.page/src/org/eclipse/osbp/preferences/ui/page/PreferencePageBI.java
@@ -0,0 +1,37 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License 2.0        
+ * which accompanies this distribution, and is available at                  
+ * https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ * SPDX-License-Identifier: EPL-2.0                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.preferences.ui.page;
+
+import org.eclipse.osbp.preferences.Preference;
+import org.eclipse.osbp.preferences.ui.component.APreferencePage;
+import org.eclipse.osbp.preferences.ui.component.Item;
+import org.eclipse.osbp.preferences.ui.component.Type;
+
+public class PreferencePageBI extends APreferencePage {
+
+	public PreferencePageBI() {
+		super(
+			"BI",
+			"Configuration for business intelligence intergration"
+		);
+	}
+	
+	@Override
+	protected Item[] initializeItems() {
+		return new Item[] {
+			new Item(Type.TEXT, Preference.CUBE_VIEW_PORT, "Cube view port", false),
+		};
+	}
+}
diff --git a/org.eclipse.osbp.preferences/src/org/eclipse/osbp/preferences/databases/vendors/MSSQLDatabaseVendor.java b/org.eclipse.osbp.preferences/src/org/eclipse/osbp/preferences/databases/vendors/MSSQLDatabaseVendor.java
index 97f49ac..5182e53 100644
--- a/org.eclipse.osbp.preferences/src/org/eclipse/osbp/preferences/databases/vendors/MSSQLDatabaseVendor.java
+++ b/org.eclipse.osbp.preferences/src/org/eclipse/osbp/preferences/databases/vendors/MSSQLDatabaseVendor.java
@@ -166,12 +166,12 @@
 
 	@Override
 	public String convertToDateSQL(Date date) {
-		return "cast('" + date.toString().replace(".0", "") + "' as datetime)";
+		return "convert(datetime, '" + date.toString().replace(".0", "") + "', 121)";
 	}
 
 	@Override
 	public String convertToTimestampSQL(Timestamp date) {
-		return "cast('" + date.toString().replace(".0", "") + "' as datetime2)";
+		return "convert(datetime2, '" + date.toString().replace(".0", "") + "', 121)";
 	}
 
 	/**
