我正在使用 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 服务器时,它显示为2019-07-05 08:51:07.000 5 月 7 日,当我进行插入时。
2 回答
森林海
TA贡献2011条经验 获得超2个赞
不要使用通用转换函数从字符串转换,而是使用 convert 函数,该函数允许您设置要用于该转换的确切日期格式。
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
慕哥9229398
TA贡献1877条经验 获得超6个赞
这是由您的日期格式问题引起的。请尝试更换
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");和
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");添加回答
举报
0/150
提交
取消
