簡體   English   中英

MSACCESS:選擇“多少天前” {可以返回:今天,昨天,2天前,…},field1,field2,fieldN FROM mytable

[英]MSACCESS: SELECT “How many days ago” {can return: today, yesterday, 2 days ago, …}, field1, field2, fieldN FROM mytable

我有一個帶有timestamp列的表,並且想要執行SELECT,以一種友好的方式返回此列,該列表示發生在幾天前,例如“ Today”,“ Yesterday”,“ 2 days ago”,“ 3 days”前”...

我無法處理目標數據,因此我的查詢必須返回最終字符串。

我已經在使用DateDiff(“ d”,timestamp,Date())確定一個表示的整數,但是我需要轉換為相應的字符串。

我已經成功構建了一個[intDays(PK),strDays]和內部聯接之類的輔助表,但是這種方式下我需要預先填充所需的所有范圍的值。 我正在尋找一種更通用的解決方案,該解決方案遵循條件邏輯來輸出正確的字符串,例如:(偽代碼)

If DateDifference = 0 Then return "Today"
If DateDifference = 1 Then return "Yesterday"
return DateDifference & " days ago"

您可以使用iif()

select iif(DateDiff("d", timestamp, Date()) = 0, "Today",
           iif(DateDiff("d", timestamp, Date()) = 1, "Yesterday",
               DateDiff("d", timestamp, Date()) & " days ago"
              )
          )

注意:最后一個表達式可能需要為cstr(DateDiff("d", timestamp, Date())) & " days ago" 我不確定MS Access是否自動進行轉換,或者如果其中一個參數不是字符串,則會生成錯誤。

這類邏輯通常會在應用程序級別完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM