Изменить формат даты в sqlite
Измените этот формат даты в sqlite db 12/10/11 to 12-10-11 (mm-dd-yy)
Я не могу сделать это. Я нуб в sqlite и должен проанализировать это значение SELECT strftime('%d-%m-%Y',Date) from report
но я получаю нулевое значение, так как sqlite дБ исключает значение в mm-dd-yy
так как мне конвертировать формат 12/10/11 to 12-10-11 (mm-dd-yy)
. Спасибо заранее. Очень ценю помощь.
1 ответ
Краткий ответ:
Если у вас есть текстовая строка хранится как "12/10/11"
что вы хотите сообщить как "12-10-11"
, вы должны использовать replace(X,Y,Z)
функция, чтобы заменить вхождения Y
в X
с Z
, Таким образом:
SELECT replace('12/24/11','/','-');
вернусь:
12-10-11
Длинный ответ:
Во-первых, на самом деле даты не существуют как правильный тип данных в SQLite. Они сохраняются как значения TEXT, REAL или INTEGER. Смотрите дату и время в SQLite. Так что это зависит от того, как ваша дата была сохранена в базе данных.
Во-вторых, вы, кажется, подразумеваете, что вы сохранили дату в mm/dd/yy
"формат. Это не является действительным / полезным TEXT
формат для хранения значений даты / времени (поскольку дата не может быть отсортирована, не может использоваться в операциях "больше чем" и "меньше чем", не может использоваться в функциях даты SQLite и т. д.). Вы действительно хотите хранить значения даты и времени в одном из форматов, перечисленных в разделе "Строки времени" документа функций даты и времени.
Итак, как правило, вы должны хранить значения даты / времени в одном из этих форматов, используйте NSDateFormatter
чтобы преобразовать это в NSDate
когда вы получаете его из базы данных. И когда вы хотите отобразить значение даты в вашем приложении, используйте любой формат, который вы хотите для вывода.
Но, если вам все равно, что даты хранятся в виде текстовых строк и не могут эффективно использоваться как даты в SQLite, просто относитесь к ним как к старым TEXT
строка и использование TEXT
функции, такие как replace(X,Y,Z)
заменить вхождения "/"
с "-"
, как указано выше.