java - SQLite 到 MS SQL 日期时间

标签 java sql-server sqlite

我正在使用 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/

相关文章:

iphone - 当我删除一行时,Iphone 上的 Sqlite 是否会重新排序数据库行?

java - HttpClient 迁移 3.x 到 4.x

java - 我的代码中 if(!b) 的含义是什么

SQL Server : Joins,重复记录和联合

sql - 如何通过一个查询获取数据库的总行数

iphone - SQLite MYSQL 字符编码

java - 如何处理 Java FX2 中未捕获的运行时异常?

java - 单击时选中和取消选中 RadioButton

sql-server - TSQL : How do I get the size of the transaction log?

c# - 如何使用 C# 将 CSV 文件上传到 sql server 表?