SQL語法--如何取得日期及計算日期?

SQL取得日期需要透過特別的table,例如ORACLE資料庫要訪問DUAL table;DB2資料庫要訪問SYSDUMMY1 table。

以下以DB2為例,說明SYSDUMMY1 table及日期取得及計算的方法及範例:

  • SYSDUMMY1說明:
    • SYSDUMMY1是屬於系統內建的table,位於SYSIBM下,提供給SQL語句需要時使用,它的內容並不重要(從以下的例子可以發現)。
    • 我們只要利用SQL指令 SELECT * FROM SYSIBM.SYSDUMMY1 就可以看到它的內容。我們可以發現它的內容只有一筆資料,一個欄位,欄位名稱為IBMREQD其值為Y。
  • 取得各種形式的時間(如DATE, TIME, YEAR...),以目前的時間為例:

SELECT
  -- DATE & TIME
  CURRENT TIMESTAMP AS TIMESTAMP,
  CURRENT date AS DATE,
  CURRENT time AS TIME,
  -- YEAR
  YEAR(CURRENT TIMESTAMP) AS YEAR,
  -- MONTH
  MONTH(CURRENT TIMESTAMP) AS MONTH,
  MONTHNAME(CURRENT TIMESTAMP) AS MONTHNAME,     -- 傳回January, Febuary,...
  -- DAY
  DAY(CURRENT TIMESTAMP) AS DAY,                 -- 傳回本月的第幾天
  DAYS(CURRENT TIMESTAMP) AS DAYS,               -- 傳回自西元0001-1-1至此日期的天數
  DAYOFYEAR(CURRENT TIMESTAMP) AS DAYOFYEAR,     -- 傳回本年度的第幾天
  -- HOUR
  HOUR(CURRENT TIMESTAMP) AS HOUR,
  -- MINUTE
  MINUTE(CURRENT TIMESTAMP) AS MINUTE,
  -- SECOND
  SECOND(CURRENT TIMESTAMP) AS SECOND,
  MIDNIGHT_SECONDS(CURRENT TIMESTAMP) AS MIDNIGHT_SECONDS,-- 傳回當天零時到此時間的總秒數
  MICROSECOND(CURRENT TIMESTAMP) AS MICROSECOND,
  -- WEEK
  DAYNAME(CURRENT TIMESTAMP) AS DAYNAME,               -- 傳回Sunday, Monday,...
  DAYOFWEEK_ISO(CURRENT TIMESTAMP) AS DAYOFWEEK_ISO,   -- 傳回1到7, 週一為1,依此類推.
  DAYOFWEEK(CURRENT TIMESTAMP) AS DAYOFWEEK,           -- 傳回1到7, 週日為1,依此類推.
  WEEK_ISO(CURRENT TIMESTAMP) AS WEEK_ISO,             -- 傳回本年度的第幾週(1~53)
  WEEK(CURRENT TIMESTAMP) AS WEEK                      -- 傳回本年度的第幾週(1~54)
FROM SYSIBM.SYSDUMMY1
    • 取得各種形式的時間,執行結果如下:




  • 將字串轉換為日期的各種形式:
SELECT 
  DATE ('2022-03-15') AS DATE1,
  DATE ('03/15/2022') AS DATE2,
  TIME ('12:15:10') AS TIME1,
  TIME ('12.15.10') AS TIME2, 
  TIMESTAMP ('2022-03-15-12.00.00.000000') AS TIMESTAMP1,
  TIMESTAMP ('2022-03-15 12:00:00') AS TIMESTAMP2
FROM SYSIBM.SYSDUMMY1
    • 將字串轉換為日期,執行結果如下:




  • 日期計算的各種方法:
SELECT
  DAYS (CURRENT DATE) - DAYS (DATE('2022-03-10')) AS DAYS1,
  DATE('2022-03-15') - date('2022-03-10') AS DAYS2,
  DATE('2022-03-15') + 2 YEAR AS ADD_YEAR,
  DATE('2022-03-15') + 2 YEAR + 2 MONTH + 2 DAY AS ADD_YEAR_MONTH_DAY,
  TIME('12:15:10') + 2 HOURS + 2 MINUTES + 2 SECONDS AS ADD_HOUR_MINUTE_SEC
FROM SYSIBM.SYSDUMMY1
    • 日期的計算的各種方法,執行結果如下:




Read More »

如何將Windows 11工作列上的項目靠左?就像Windows 10 一樣...

 Windows 10 和 Windows 11 最明顯的差別是工作列上的所有項目都排在中間,剛使用的人可能會很不習慣,如果您想要把它更改為像 Windows 10 一樣靠左排列也是可以的,請看以下更改方法...

- Windows 11 預設將工作列上的項目都置中 ,如下圖:





- 將工作列上的項目改為置左(像Windows 10 一樣),如下圖:


- 更改方法,只要改一個設定,步驟如下:

  1. 在工作列上按滑鼠右鍵 > 選擇[工作列設定]
  2. 往下找[工作列行為] > [工作列對齊] > 右側欄位將[置中]改為[左] 如下圖即可。

Read More »

SQL教學及學習的參考的網站

 SQL教學及學習的參考的網站:




SQL 教程,含 SQL 簡介、SQL 的歷史、SQL 的使用等等。 
無論您是一位 SQL 的新手,或是一位只是需要對 SQL 複習一下的資料倉儲業界老將,您就來對地方了。這個 SQL 教材網站列出常用的 SQL 指令。
分類方式列出常用的 SQL基礎語法方便讀者入門。
瞭解如何在內部部署和雲端中使用 SQL Server 和 Azure SQL。
將教您如何在 MySQL、SQL Server、MS Access、Oracle、Sybase、Informix、Postgres 和其他數據庫系統中使用 SQL。其特色之一是含有練習題。
提供了成功構建數據庫和編寫 SQL 查詢所需的所有資料。有語法、查詢解釋和利用圖形來讓你更容易的地了解。 除此之外,還有數百個帶有在線編輯器和測驗的練習。因此,您可以在不離開瀏覽器的情況下練習概念和查詢。
將可以學到如何使用 SQL 訪問和處理資料系統中的資料,這類資料庫包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 
Db2 for z/OS 的SQL的參考,包括 SQL PL。 除非另有說明,否則本書中對 SQL說明針對及適用於Db2 for z/OS 。 
包含有關以下主題的訊息:資料庫概念、內建函數、內建全域變量、語句和查詢、SQL PL & CL、限制、使用 C,Java,COBOL,REXX 和一般外部例程進行程式撰寫
SQL 傳回碼 (SQLSTATE)、CCSID。

 





 

 

Read More »
>