Hi together, how can I insert a datetime with mill...
# lucee
d
Hi together, how can I insert a datetime with milliseconds into MariaDB? Lucee 6.1.0.249 MariaDB 10.11.9 DB driver
com.mysql.cj.jdbc.Driver
Copy code
CREATE TABLE my_table(
	my_date DATETIME(3)
);
None of the following trails inserts milliseconds
Copy code
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = now(), sqltype = 'datetime' } }
)
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = now(), sqltype = 'timestamp' } }
)
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = createODBCDateTime(now()), sqltype = 'datetime' } }
)
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = createODBCDateTime(now()), sqltype = 'timestamp' } }
)
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = now().dateTimeFormat('yyyy-mm-dd HH:nn:ss.lll'), sqltype = 'datetime' } }
)
queryExecute(
	'INSERT INTO my_table ( my_date ) VALUES ( :my_date )'
	,{ my_date = { value = now().dateTimeFormat('yyyy-mm-dd HH:nn:ss.lll'), sqltype = 'timestamp' } }
)
r
I'd try using your last example but passing the value in as varchar and using STR_TO_DATE() on the parameter value in the SQL.
Copy code
queryExecute(
	"INSERT INTO my_table ( my_date ) VALUES ( STR_TO_DATE( :my_date, '%Y-%m-%d %H:%i:%S.%f' ) )"
	,{ my_date = { value = now().dateTimeFormat('yyyy-mm-dd HH:nn:ss.lll'), sqltype = 'varchar' } }
)
d
Thnx @Rodney This could be a workaround. @zackster But why does this not work directly?
c
@Dirk Seems to work ok with the MariaDB driver https://www.forgebox.io/view/F2FA5DB2-0C27-499C-B1171D2D812FDAF9
d
Thnx @cfsimplicity I tested it localy: It work's. Now I have to ask my hosting provider to install this extension
👍 1