第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 jOOQ 查詢中使用 Postgres 的 to_char?

如何在 jOOQ 查詢中使用 Postgres 的 to_char?

ABOUTYOU 2022-12-28 09:46:53
我正在嘗試將以下 PostgreSQL 查詢轉(zhuǎn)換為 jOOQ:SELECT count(*), to_char(created_date, 'YYYY-MM-DD') as year_month_date  FROM log  GROUP BY year_month_date  ORDER BY year_month_date我所擁有的是:jooq.select(    DSL.count(),    DSL.field("to_char(created_date, 'YYYY-MM-DD') as year_month_date")  )  .from(LOG)  .groupBy(DSL.field("year_month_date"))  .orderBy(DSL.field("year_month_date"))  .fetch();有沒有一種方法可以使用 jOOQ 的流暢 API,這樣我就不必使用字符串了?
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

使用TO_CHAR()

有一個待處理的功能請求以添加對供應商特定to_char()功能的支持:https ://github.com/jOOQ/jOOQ/issues/8381


為了對這樣的功能進行標準化,需要做更多的研究以確保我們可以涵蓋每個供應商在這里實現(xiàn)的所有內(nèi)容,因為不幸的是格式化邏輯是供應商特定的,并且是字符串類型的。


所以,如果你想使用to_char(),目前,你將不得不求助于使用普通的 SQL 模板,你已經(jīng)這樣做了。您顯然可以以可重用的形式分解出該實用程序,例如:


public static Field<String> toChar(Field<?> date, String format) {

    return DSL.field("to_char({0}, {1})", SQLDataType.VARCHAR, date, DSL.inline(format));

}

截斷日期

當然,在您的特定查詢中,您也可以求助于使用標準 SQL 功能,例如CAST(). 我認為您要做的是從您的timestamportimestamptz列中截斷時間信息,因此您可以改為這樣做:


SELECT count(*), CAST (created_date AS DATE) d

  FROM log

  GROUP BY d

  ORDER BY d

或者使用 jOOQ:


Field<Date> d = LOG.CREATED_DATE.cast(SQLDataType.DATE);


jooq.select(count(), d)

    .from(LOG)

    .groupBy(d)

    .orderBy(d)

    .fetch();


查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號