web-dev-qa-db-ja.com

日時値をSQLiteデータベースに挿入するにはどうすればよいですか?

SQLite データベースに日時値を挿入しようとしています。それは成功しているようですが、値を取得しようとするとエラーが発生します:

<データを読み取れません>

SQLステートメントは次のとおりです。

create table myTable (name varchar(25), myDate DATETIME)
insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')
104
Brad

必要な形式は次のとおりです。

'2007-01-01 10:00:00'

つまり、yyyy-MM-dd HH:mm:ss

ただし、可能であれば、パラメーター化されたクエリを使用してください。これにより、書式設定の詳細を心配する必要がなくなります。

141
itowlson

SQLiteに日付を保存する方法は次のとおりです。

 yyyy-mm-dd hh:mm:ss.xxxxxx

SQLiteには、使用できる日付と時刻の関数もいくつかあります。 SQLiteで理解されるSQL、日付と時刻の関数 を参照してください。

46
Tor Valamo

STRFTIME関数を使用して挿入できるようにするには、指定する日付文字列の形式を変更する必要があります。理由は、月の省略形のオプションはありません:

%d  day of month: 00
%f  fractional seconds: SS.SSS
%H  hour: 00-24
%j  day of year: 001-366
%J  Julian day number
%m  month: 01-12
%M  minute: 00-59
%s  seconds since 1970-01-01
%S  seconds: 00-59
%w  day of week 0-6 with sunday==0
%W  week of year: 00-53
%Y  year: 0000-9999
%%  % 

別の方法は、日付/時刻を既に受け入れられている形式にフォーマットすることです。

  1. YYYY-MM-DD
  2. YYYY-MM-DD HH:MM
  3. YYYY-MM-DD HH:MM:SS
  4. YYYY-MM-DD HH:MM:SS.SSS
  5. YYYY-MM-DDTHH:MM
  6. YYYY-MM-DDTHH:MM:SS
  7. YYYY-MM-DDTHH:MM:SS.SSS
  8. HH:MM
  9. HH:MM:SS
  10. HH:MM:SS.SSS

リファレンス: SQLiteの日付と時刻関数

17
OMG Ponies

OF NOW()(MySQL)の代わりに、必要なときにCURRENT_TIMESTAMPを使用します

8
freezing_

Read This :1.2 Date and Time Datatype best data type to date and time is:

TEXTの最適な形式:yyyy-MM-dd HH:mm:ss

次に、 this page;を読みます。これは、SQLiteの日付と時刻について最もよく説明しています。これがお役に立てば幸いです

6
Ali Amanzadegan

これは最も一般的または効率的な方法ではないかもしれませんが、 SQLite の強力なデータ型はすべて無視する傾向があります。

以前に(もちろん、C#でSQLiteを使用する場合)SQLiteライブラリの周りに薄いC#ラッパーを記述して、DateTimeオブジェクトを処理しているかのようにSQLiteに対する挿入と抽出を処理しました。

0
Messy