72107


redashでcached_queryをFROM句として読み込む際に  
YYYY-MM-DDのフォーマットで出したいカラムがあるのですが、  
「2020-10-25 00:00」のように00:00も一緒に表示されてしまいます。

PostgreSQLでは下記のように抽出されたデータです。

[code]

    SELECT (【datetime型のカラム】 + interval '12 hour')::date AS A
    
[/code]

**'2020-10-22 07:34'→(A抽出後)'2020-10-22'**

SQLiteでこのデータをキャッシュした場合、

**2020-10-22 00:00**

という表示になります。SQLiteはDate型がないとの事だったので、

  * `strftime('%Y-%m-%d',A)`
  * `substr(A,1,10)`

などを試してみたのですが、やはり `2020-10-22 00:00` のように末尾に「00:00」が出てきてしまいます。

解決方法を教えていただけないでしょうか。不慣れで恐縮ですが、よろしくお願いいたします。


CC BY-SA 4.0
2020-11-20T11:56:39.707
72099
2020-11-21T17:37:26.040
2020-11-20T12:40:29.527
3060
41287
question
sql sqlite redash
PostgreSQLでDate型だったものをSQLiteで同様のフォーマット(YYYY-MM-DD)で出したい


[RedashのQuery Result](https://ariarijp.hatenablog.com/entry/redash-advent-
calendar-day-1)を使い、Redashのダッシュボードからクエリ画面を開いて実行するとご質問の状況に陥るようです。

duscuss.redash.io(Redashの公式フォーラム？)に[類似質問](https://discuss.redash.io/t/no-
control-over-date-format-in-query-results-data-source-query/5231)がありました。

リンク先の回答によると、Redashのダッシュボードからクエリ画面を開いてクエリを実行した時、ダッシュボードのフロントエンド側でクエリ結果のキャストが行われます。  
これによって`%Y-%m-%d`形式の文字列が自動的に日付型と判断され、クエリ結果に`00:00`付きで表示します。

そのためtable visualization settingからcolumn typeを"Text"に変更すると、未加工の文字列が表示されます。

つまり`00:00`はフロントエンドで勝手につけているだけで、内部的なクエリ結果は`%Y-%m-%d`形式のままです。

> What you’ve described isn’t a bug but rather expected behavior.

仕様です。とのこと。

ちなみに[SQL
Fiddle](http://sqlfiddle.com/#!5/77617/3)では、ご質問のように`strftime`などの記述で正しく表示されますので、SQLによるフォーマット自体はご質問の表記でよろしいかと思います。


CC BY-SA 4.0
2020-11-21T00:10:13.897
72107
2020-11-21T00:10:13.897
9820
72099
answer