Java: Insertar en una tabla datos de fecha y hora

Estoy tratando de insertar en una variable en la base de datos MS-SQL la fecha actual y la hora. Yo uso este formato:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
Calendar cal = Calendar.getInstance();  
System.out.println(dateFormat.format(cal.getTime()));

y recibo esto como resultado 2013-01-28 09: 29: 37.941

Mi campo en la base de datos está definido.datetime y como he visto en otras tablas que tienen el mismo campo, la fecha y la hora están escritas exactamente igual que este 2011-07-05 14: 18: 33.000.

Intento insertarlo en la base de datos con una consulta que hago dentro de un programa java, pero recibo este error

Excepción de SQL: Estado: Mensaje S0003: La conversión de un tipo de datos varchar a un tipo de datos de fecha y hora del valor está fuera de rango. Error: 242

Mi consulta es así:

query = "INSERT INTO Companies CreatedOn"+ 
         "VALUES ('" + dateFormat.format(cal.getTime()) + "')"

pero no entiendo lo que estoy haciendo mal

Respuestas a la pregunta(6)

Su respuesta a la pregunta