我正在使用 SQLite 来存储一些日期时间。
我的 SQLite 数据库具有以下创建表的功能
String CREATE_METERREADS_TABLE = "CREATE TABLE " + TABLE_METERREADS + " ("
+ KEY_MYID + " INTEGER,"
+ KEY_MYNUMBER + " FLOAT,"
+ KEY_MYDATE + " TEXT" + ")";
sqLiteDatabase.execSQL((CREATE_METERREADS_TABLE));
我正在使用以下方法创建日期并将其保存在一个类型为 String
的变量中:
Date date = Calendar.getInstance().getTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateRead = dateFormat.format(date);
然后我使用存储过程将其发送到 SQL Server:
INSERT INTO MyData(ID, MYNumber, MYdate)
VALUES (@MYID, @MYNUMBER, cast(@MYDATE as datetime))
由于某种原因,日期和月份正在切换,所以当我创建日期时,您可以看到上面的格式,但是当它被放入 SQL Server 时,它显示为 2019-07-05 08:51:07.000
插入时是 5 月 7 日。
最佳答案
不要使用通用的强制转换函数从字符串进行转换,而是使用允许您设置要用于该转换的确切日期格式的转换函数。
INSERT INTO MyData(ID, MYNumber, MYdate)
VALUES (@MYID, @MYNUMBER, convert(datetime, @MYDATE, 120)
在您的情况下,格式为 120(ODBC 规范):yyyy-mm-dd hh:mi:ss
这里有一个完整的列表: https://www.w3schools.com/sql/func_sqlserver_convert.asp
关于java - SQLite 到 MS SQL 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56018075/