Системная дата сохранена в виде 4-значного числа в базе данных Sqlite Unity - PullRequest
0 голосов
/ 29 октября 2018

В моей игре Unity я получаю системную дату и отправляю ее в базу данных Sqlite. Но в базе данных sqlite дата сохраняется как четырехзначное число.

это код, который я использовал для получения даты.

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"));
    }

Вот так выглядит дата в редакторе единиц, когда я ее распечатываю: enter image description here

Но вот как это выглядит в базе данных Sqlite: enter image description here

Число уменьшается при увеличении даты.

Пример: 2018-10-28 => 1982 | 2018-10-29 => 1981

Я хочу сохранить дату в базе данных sqlite в том же формате, который отображается в редакторе Unity. (Гггг-мм-дд) * * один тысяча двадцать-одна

1 Ответ

0 голосов
/ 29 октября 2018

Добавить заполнитель к вашему запросу, например ('{0}')

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

Примечание: Используйте подготовленные операторы, которые могут предотвратить внедрение SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...