【SQL】【思念】請Oracle協助得到孩子的精確年齡(精確到秒)
圖圖(Daining)已經和媽媽回老家省親11天了,非常想念,為表達思念之情,編寫了一個SQL語句,隨時計算他的精確年齡(精度到秒)。
--如果您有興趣,也可以拿去計算一下自己的小孩子的準確年齡,修改一下出生日期就可以了。
1.編寫的SQL語句如下
sec@ora10g> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
Session altered.
sec@ora10g> col "Daining's age:" for a75
sec@ora10g> SELECT 'Hi, My name is Hou Daining. I am Secooler'
2 || ''''
3 || 's son.'
4 || CHR (10)
5 || 'I was born in Beijing on November 11, 2008.'
6 || CHR (10)
7 || 'It is '
8 || SYSDATE
9 || ' o'
10 || ''''
11 || 'clock now.'
12 || CHR (10)
13 || 'So I am '
14 || SUBSTR (dt_from_birth, 7, 4)
15 || ' years '
16 || SUBSTR (dt_from_birth, 12, 2)
17 || ' months '
18 || SUBSTR (dt_from_birth, 22, 2)
19 || ' days '
20 || SUBSTR (dt_from_birth, 25, 2)
21 || ' hours '
22 || SUBSTR (dt_from_birth, 28, 2)
23 || ' minutes '
24 || SUBSTR (dt_from_birth, 31, 2)
25 || ' seconds old.' AS "Daining's age:"
26 FROM (SELECT NUMTOYMINTERVAL (MONTHS_BETWEEN (tutu_now, tutu_birth),
27 'month'
28 )
29 || NUMTODSINTERVAL
30 ( tutu_now
31 - ADD_MONTHS
32 (tutu_birth,
33 TRUNC (MONTHS_BETWEEN (tutu_now,
34 tutu_birth
35 )
36 )
37 ),
38 'day'
39 ) dt_from_birth
40 FROM (SELECT TO_DATE ('2008-11-11 19:20:00',
41 'yyyy-mm-dd hh24:mi:ss'
42 ) tutu_birth,
43 SYSDATE tutu_now
44 FROM DUAL))
45 /
Daining's age:
-------------------------------------------------------------------------
Hi, My name is Hou Daining. I am Secooler's son.
I was born in Beijing on November 11, 2008.
It is 2009-08-22 17:35:04 o'clock now.
So I am 0000 years 09 months 10 days 22 hours 15 minutes 04 seconds old.
2.小結一下SQL語句中用到的一些小技巧
1)使用連線CHR (10)的方式實現語句的換行
2)使用substr函式擷取並定位字串,格式化輸出資訊
3)使用NUMTOYMINTERVAL函式得到年和月的資訊
4)使用NUMTODSINTERVAL函式得到天和時分秒的資訊
5)AS "Daining's age:",此處使用as語句重新命名sqlplus的顯示標題
6)col "Daining's age:" for a75,此處格式化sqlplus每行輸出佔用75列
7)|| '''',此處使用了單引號的轉義處理小技巧
-- The End --
--如果您有興趣,也可以拿去計算一下自己的小孩子的準確年齡,修改一下出生日期就可以了。
1.編寫的SQL語句如下
sec@ora10g> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
Session altered.
sec@ora10g> col "Daining's age:" for a75
sec@ora10g> SELECT 'Hi, My name is Hou Daining. I am Secooler'
2 || ''''
3 || 's son.'
4 || CHR (10)
5 || 'I was born in Beijing on November 11, 2008.'
6 || CHR (10)
7 || 'It is '
8 || SYSDATE
9 || ' o'
10 || ''''
11 || 'clock now.'
12 || CHR (10)
13 || 'So I am '
14 || SUBSTR (dt_from_birth, 7, 4)
15 || ' years '
16 || SUBSTR (dt_from_birth, 12, 2)
17 || ' months '
18 || SUBSTR (dt_from_birth, 22, 2)
19 || ' days '
20 || SUBSTR (dt_from_birth, 25, 2)
21 || ' hours '
22 || SUBSTR (dt_from_birth, 28, 2)
23 || ' minutes '
24 || SUBSTR (dt_from_birth, 31, 2)
25 || ' seconds old.' AS "Daining's age:"
26 FROM (SELECT NUMTOYMINTERVAL (MONTHS_BETWEEN (tutu_now, tutu_birth),
27 'month'
28 )
29 || NUMTODSINTERVAL
30 ( tutu_now
31 - ADD_MONTHS
32 (tutu_birth,
33 TRUNC (MONTHS_BETWEEN (tutu_now,
34 tutu_birth
35 )
36 )
37 ),
38 'day'
39 ) dt_from_birth
40 FROM (SELECT TO_DATE ('2008-11-11 19:20:00',
41 'yyyy-mm-dd hh24:mi:ss'
42 ) tutu_birth,
43 SYSDATE tutu_now
44 FROM DUAL))
45 /
Daining's age:
-------------------------------------------------------------------------
Hi, My name is Hou Daining. I am Secooler's son.
I was born in Beijing on November 11, 2008.
It is 2009-08-22 17:35:04 o'clock now.
So I am 0000 years 09 months 10 days 22 hours 15 minutes 04 seconds old.
2.小結一下SQL語句中用到的一些小技巧
1)使用連線CHR (10)的方式實現語句的換行
2)使用substr函式擷取並定位字串,格式化輸出資訊
3)使用NUMTOYMINTERVAL函式得到年和月的資訊
4)使用NUMTODSINTERVAL函式得到天和時分秒的資訊
5)AS "Daining's age:",此處使用as語句重新命名sqlplus的顯示標題
6)col "Daining's age:" for a75,此處格式化sqlplus每行輸出佔用75列
7)|| '''',此處使用了單引號的轉義處理小技巧
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-612975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Motivation 顯示精確年齡的蘋果電腦屏保蘋果
- Java獲取精確到秒的時間戳(轉)Java時間戳
- 【Java】得到當前系統時間,精確到毫秒Java
- Oracle timestamp型別轉換date格式指令碼(精確到秒)Oracle型別指令碼
- JavaScript年月日精確到秒倒數計時JavaScript
- excel身份證號提取年齡公式 身份證號碼提取精確年齡的公式Excel公式
- 工齡怎麼計算excel公式精確到月 如何設定工齡計算公式Excel公式
- Oracle如何精確計算row的大小Oracle
- Java web工程中獲取系統精確時間(到秒級別)JavaWeb
- js精確到天的倒數計時效果JS
- oracle 精確查詢和模糊查詢Oracle
- 怎樣確保專案評估的精確 (轉)
- jQuery精確到毫秒倒數計時詳解jQuery
- 科學需要模型 需要精確模型
- 通過Snapshot Standby來精確評估SQL效能SQL
- 基因檢測精確查明病情、精準診治疾病
- Kafka 精確一次語義Kafka
- 關於PHP精確計算模組PHP
- macOS 上精確輸入引號Mac
- PHP 身份證精確匹配驗證PHP
- Windows NT RAS 精確設定 (轉)Windows
- Linux下精確到微秒級的時間操作函式(轉)Linux函式
- PHP浮點數的精確計算BCMathPHP
- 微信定位真的洩露了你的精確位置
- 精準識別!精確定位!AI助力幹細胞培養AI
- 機器學習之分類:精確率和召回率機器學習
- xScope for mac精確度量校準工具Mac
- WPS Office和微軟Office精確相容微軟
- CAD中的MOVE命令可以幫助大家精確地把物件移動到不同的位置,建議收藏!物件
- python中精確的浮點數運算Python
- 如何精確度量 iOS App 的啟動時間iOSAPP
- 如何精確理解leader佈置的任務
- EXCEL | Datedif函式,算你有沒有選舉權,精確到天!Excel函式
- javascript浮點數精確計算程式碼JavaScript
- 精確驗證身份證號碼程式碼
- 精確統計程式碼量(Java實現)Java
- springboot許可權設計思路(精確到按鈕級別)Spring Boot
- 高效的SQL(Index-Organized Tables優化精確查詢和範圍查詢)SQLIndexZed優化