2017-11-14 9 views
1

年が指定されたテーブルからすべてのデータを取得したいとします。しかし、問題は私の日付をDATETIME型に入れていることです。'年'がDATETIMEの場合、指定した年からデータを取得する方法

は、私のような何かをしようとしている:

SELECT 
    * 
FROM 
    table 
WHERE 
    entrytime = 2017 //entrytime is datetime type. 

をしかし、それは間違っているのです。

データを取得する方法はありますか、それとも良い方法ですか?

ありがとうございます。

+0

マニュアルは素晴らしい情報源ですhttps://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html –

+1

[mysql extract from date format]の可能な複製(https://stackoverflow.com/questions/8712771/mysql-extract-year-from-date-format) –

答えて

2

あなたは日時に年間の機能を使用することができます。

SELECT * 
FROM table 
WHERE year(entrytime) = 2017 

以上:

SELECT * 
FROM table 
WHERE entrytime >= '2017-01-01' 
AND entrytime < '2018-01-01' 

後者が存在の場合は、インデックスを利用することができますentrytimeの列を使用すると、クエリをより高速に実行できます。

+0

後者は前者よりもはるかに優れていて、私は前者を忘れるように誘惑されるでしょう – Strawberry

+0

ありがとう、その作業! – GunSky7

0

あなたはdatetimeの年を抽出するためにyear機能を使用することができます。

SELECT * 
FROM mytable 
WHERE YEAR(entrytime) = 2017 
+0

ありがとうございました。 – GunSky7

0

あなたはYEAR関数を使用することができ、それhere上の文書をtheresの。

そう...

SELECT 
* 
FROM Table 
WHERE YEAR(DateColumn) = 2017 
+0

ドキュメントのための[_ ** mysqlサイト** _](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_year)を参照することをお勧めします。 –

+0

ありがとうございました。 – GunSky7

関連する問題