![](/img/trans.png)
[英]slick 3 auto-generated - default value (timestamp) column, how to define a Rep[Date] function
[英]How define today date with Default timestmp
我正在使用postgressql,我希望獲取currentdate的數據,我想根據我的plandate歸檔的數據庫中的日期過濾數據,將其定義為Time stamp with time zone
因此其顯示格式如下: 2013-09-01 03:22:01.438348+05:30
我的查詢是這樣的
select ttodoid ,date,details from ttodo where date=currentdate():
但是基於此結果的currentdate函數僅給我日期'2013-10-06',所以沒有行我該如何管理今天的日期詳細信息
更新:一種方法
SELECT *
FROM ttodo
WHERE date BETWEEN DATE_TRUNC('day', CURRENT_TIMESTAMP)
AND DATE_TRUNC('day', CURRENT_TIMESTAMP)
+ INTERVAL '1 DAY'
- INTERVAL '1 MICROSECOND';
要么
SELECT *
FROM ttodo
WHERE date >= DATE_TRUNC('day', CURRENT_TIMESTAMP)
AND date < DATE_TRUNC('day', CURRENT_TIMESTAMP)
+ INTERVAL '1 DAY';
這是SQLFiddle演示
從ttodo中選擇*,其中(ttodo.todoplandate :: date = current_date)或(ttodo.todoplandate :: date <current_date
我認為更簡單的方法是將字段轉換為date
:
SELECT ttodoid ,date,details FROM ttodo
WHERE CAST(date AS DATE) = current_date;
請注意,如果要對該查詢建立索引,則必須使用強制轉換創建索引:
CREATE INDEX idx_ttodo_date ON ttodo ((CAST(date AS DATE)));
另一種方法不是強制轉換字段,而是檢查時間間隔,該間隔類似於petern提出的內容 ,但間隔正確:
SELECT ttodoid ,date,details FROM ttodo
WHERE date >= date_trunc('day', current_timestamp)
AND date < (date_trunc('day', current_timestamp) + interval '1day');
這種方法的優勢在於它只能在date
字段上使用索引,如果您已經擁有索引的話,那就很好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.