質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

2回答

481閲覧

タイムスタンプから日付範囲を抽出したい

ippya

総合スコア31

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2017/08/21 02:01

編集2017/08/21 02:03

下のようにテーブルの日付列(date)にレコードを登録したタイムスタンプを保存しています。
|id|...|postdate|...|
|:--:|:--:|:--:|
|1||1496044453||
|2||1496283937||
|:||:||

このデータに対して、例えば 2017 年で抽出するために、

SQL

1SELECT * FROM table1 WHERE date('Y', postdate) = '2017'; 2SELECT * FROM table1 WHERE strftime('%Y', postdate) = '2017'; 3SELECT *, date('Y', postdate) AS yy FROM table1 WHERE yy = '2017'; 4SELECT *, strftime('%Y', postdate) AS yy FROM table1 WHERE yy = '2017'; 5```のように試しましたが、どれも結果が返ってきません。(特にエラーは出ず、レコード無しの状態) 6SQL 内に date() や strftime() は使えないのでしょうか? 7使えないとしたら、ほかに方法はあるのでしょうか? 8 9データベース: SQLite3 10言語: PHP 5.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

sql

1strftime('%Y', postdate, 'unixepoch', 'localtime')

でタイムスタンプ型を現地時間に変換出来るということですので、

sql

1SELECT * FROM table1 WHERE strftime('%Y', postdate, 'unixepoch', 'localtime') = '2017';

これでいけるんじゃないかと思います。

投稿2017/08/21 03:57

編集2017/08/21 03:58
chelsy7110

総合スコア596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ippya

2017/08/21 04:52

おっしゃる通りでバッチリできました!ありがとうございます!
guest

0

こんにちは。

SQLiteは詳しくないのですが、date()部分はともかく、strftime()は良さそうな気がしますね。

先ずは、条件なしで条件部分が意図通り変換できているか確認されてはどうでしょうか?

SQL

1SELECT postdate, date('Y', postdate) AS yy FROM table1; 2SELECT postdate, strftime('%Y', postdate) AS yy FROM table1;

件数が多いようであればlimitを付けて。

投稿2017/08/21 03:22

sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ippya

2017/08/21 04:55

早々にコメントありがとうございました! chelsy7110 さんの指示のように strftime() の使い方に不備があったようです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問