2017-10-22 13 views
0

私はクエリを作成!どのようにSQLの日付の形式を変更

SELECT install_time, Count(id) 
FROM (SELECT DISTINCT install_time, id 
FROM mytab 
where event='run' 
and install_time>='09.01.2017' and install_time<='09.05.2017') 
GROUP BY install_time 

しかしinstall_time09-05-2017 5:34:23 のようなその形式を持っていますが、私はこの日付フォーマットを変更する方法

09-05-2017 

時間、分、秒せずにこのフォーマットを必要ですか?

+2

n使用されているデータベース。いくつかのデータベースは 'datetime'を' date'に変換する 'date()'関数を持っています。 –

+1

使用しているSQLのバージョンは何ですか? _this_質問への答えは、日付関数がデータベース特有のものであるため、_your_質問と非常に関連しています。ああ、その形式で日付をテキストとして保存しないでください。 –

+0

私は12のバージョン –

答えて

2

まず、サブクエリーは必要ありません。

第2に、日付/時刻機能はデータベースによって異なります。 - これはほとんどのデータベースで動作し、私はまた、標準形式に日付の書式を変更し

SELECT DATE(install_time), COUNT(DISTINCT id) 
FROM mytab 
WHERE event = 'run' AND 
     install_time >= '2017-09-01' AND install_time < '2017-09-06' 
GROUP BY DATE(install_time) 
ORDER BY DATE(install_time); 

注:ここでの時間成分を除去するためのdate()機能を担う一つの方法です。そして、私はinstall_timeの2番目の比較を変更して、時間成分を考慮に入れました。ここで

date()機能にはいくつかの等価物である(MySQLの、SQLiteの、BigQueryの中で動作し、DB2少なくとも):

  • SQL Serverの:cast(install_time as date)
  • のPostgres:date_trunc('day', install_time)
  • オラクル:trunc(install_time)
  • Teradata:cast(install_time as format 'YYYYMMDD')
+1

を使用して、 'event = 'run' AND(install_time> = '2017-09-01'およびinstall_time <= '2017-09-05') 'をグループ化する価値があります。 – RomanPerekhrest

+0

ありがとうございます。 –

関連する問題