You're not alone. I've tried all the things you mentioned as well as attempting to use a parameter in the SQL statement.
The only way I get the date to work, for VFP, in the SQL statement is by using the ADO COMMAND object. You may be familiar with this but a short take is provided.
....
cmd.ActiveConnection = Conn
cmd.commandtext="INSERT INTO table (datetime,date,...) VALUES(?,?,...)
set objparam=cmd.createparameter(, 135, , 2, dttime)
cmd.parameters.append objparam
set objparam=cmd.createparameter(, 133, , 2, date)
cmd.parameters.append objparam
cmd.execute
...
You can change the SQL statement to UPDATE..
If you get an answer to your original question please let me know. I've posted a similar message today.
Wayne Finch
C. W. Finch Consulting