【问题标题】:System Date saved as a 4 digit number in Sqlite database Unity在 Sqlite 数据库 Unity 中保存为 4 位数字的系统日期
【发布时间】:2019-04-02 02:05:33
【问题描述】:

在我的 Unity 游戏中,我获取系统日期并将其发送到 Sqlite 数据库。但在 sqlite 数据库中,日期保存为 4 位数字。

这是我用来获取日期的代码。

PlayerPrefs.SetString("date_time", System.DateTime.Now.ToString("yyyy-MM-dd")); 
CurrentDate = PlayerPrefs.GetString("date_time");

这就是我将它插入数据库的方式。

//Add new event with o timer at the start of the game
    public void AddEvent(){
        using (IDbConnection dbConnection = new SqliteConnection(connectionString)){
            dbConnection.Open();

            using(IDbCommand dbCmd = dbConnection.CreateCommand()){
                string sqlQuery = String.Format("INSERT INTO events(date,timer_count) VALUES({0},0)",System.DateTime.Now.ToString("yyyy-MM-dd"));
                dbCmd.CommandText = sqlQuery;
                dbCmd.ExecuteScalar();
                dbConnection.Close();
            }
        }

        PlayerPrefs.SetString("date_time", System.DateTime.Now.ToString("yyyy-MM-dd")); 
        Debug.Log(PlayerPrefs.GetString("date_time"));
    }

当我打印出日期时,这就是统一编辑器中日期的样子:

但这就是它在 Sqlite 数据库上的样子:

日期增加时数字减少。

示例:2018-10-28 => 1982 | 2018-10-29 => 1981

我想以与 Unity 编辑器中显示的相同格式将日期存储在 sqlite 数据库中。 (yyyy-mm-dd)

【问题讨论】:

  • 2018 减去 10 减去 28 是多少(确定你没有看到 1980?)为什么不在插入语句中使用占位符来表示日期字符串?
  • 试试这个 => string sqlQuery = String.Format("INSERT INTO events(date,timer_count) VALUES({0},0)", System.DateTime.Now.Date);
  • @Shawn 是的,它的“2018 减 10 减 28”,当它转换为字符串时怎么会发生?当我将其更改为 (2018/10/29) 时,它将 6 存储在数据库中。
  • 我将 System.DateTime.Now.ToString("yyyy-MM-dd") 更改为 System.DateTime.Now.ToString().Substring(0,10) 以获取日期。现在它将 0 存储在 sqlite 数据库的日期字段中。
  • @SNoV,你试过我上面注释的代码语句了吗?

标签: c# sqlite unity3d


【解决方案1】:

为您的查询添加占位符,例如('{0}')

string sqlQuery = String.Format("INSERT INTO events(date,timer_count) VALUES('{0}',0)", System.DateTime.Now.Date);

注意:使用可防止sql注入的预处理语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多