SQL 根據身份證號碼獲取年齡的函數

来源:https://www.cnblogs.com/suyun0702/archive/2018/03/14/8566278.html
-Advertisement-
Play Games

在資料庫的運用過程中,我們時常會碰到根據身份證號碼來獲取當前的年齡,今天我在這裡寫了一個函數,就是關於獲取年齡的 下麵是函數調用的SQL語句: ...


在資料庫的運用過程中,我們時常會碰到根據身份證號碼來獲取當前的年齡,今天我在這裡寫了一個函數,就是關於獲取年齡的

create or replace function FUNC_COMPARE_SFZHM( sfzhm in varchar2) --輸入身份證號碼
  return number
  /*
  函數說明,返回值0為小於18歲;值為1是大於75歲;其他情況是返回值為2
  在這個函數里用到了trunc(months_between()) 
  然後就是將身份證號碼里的年月日組合成'yyyy-mm-dd'格式,但是在SQL里拼接用的是"||",而不是"+",這個值得註意
  */
is

begin
    if Trunc(MONTHS_BETWEEN(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy-MM-dd'),to_date(substr(sfzhm,7,4)||'-'||substr(sfzhm,11,2)||'-'||substr(sfzhm,13,2), 'yyyy-MM-dd')) / 12) < 18  then
      return 0;  
    elsif  Trunc(MONTHS_BETWEEN(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy-MM-dd'),to_date(substr(sfzhm,7,4)||'-'||substr(sfzhm,11,2)||'-'||substr(sfzhm,13,2), 'yyyy-MM-dd')) / 12) >75 then
    return 1;
    else
      return 2;
    end if;
end;

下麵是函數調用的SQL語句:

select func_compare_sfzhm('310103200003141234') from dual;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對於MySQL資料庫中的誤操作刪除數據的恢復問題,可以使用基於MySQL中binlog做到類似於閃回或者生成反向操作的SQL語句來實現,是MySQL中一個非常實用的功能。原理不難理解,基於MySQL的row格式的binlog中,記錄歷史的增刪改SQL信息,基於此解析出來對應的SQL語句(回滾的話就是 ...
  • 嘗試了一下MySQL 8.0的部分新特性。 如果用過MSSQL或者是Oracle中的視窗函數(Oracle中叫分析函數), 然後再使用MySQL 8.0之前的時候,就知道需要在使用視窗函數處理邏輯的痛苦了,雖然純SQL也能實現類似於視窗函數的功能,但是這種SQL在可讀性和以及使用方式上大打折扣,看起 ...
  • 1.MySQL資料庫基礎 顯示當前的伺服器版本 SELECT VERSION(); 顯示當前的日期時間 SELECT NOW(); 顯示當前用戶 SELECT USER(); 查看資料庫 SHOW DATABASES; 查看警告 SHOW WARNINGS; 2.MySQL語句的規範 (1) 關鍵字 ...
  • 2 HDFS Users Guide 2 HDFS Users Guide. 1 2.1目的... 1 2.2.概述... 1 2.3.先決條件... 2 2.4. Web Interface. 2 2.5. Shell Command. 2 2.5.1 DFSAdmin 命令... 3 2.6 S ...
  • [mysql]port=3306socket=/var/lib/mysql/mysql.sockdefault-character-set = utf8mb4 [mysqld]server-id=2log-bin=mysql-bin datadir=/data/mysqlsocket=/var/li ...
  • #啟動mongo命令/data/liudi/mongodb/bin/mongo --port 27010 #顯示資料庫show dbs; #使用tps_live資料庫use tps_live; #顯示對象show tables; #刪除liveVo對象集中的數據db.liveVo.remove({} ...
  • 參考博客 "MySQL資料庫備份(linux)" "MySQL mysqldump數據導出詳解" 備份地址 https://files.cnblogs.com/files/jxner/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD%EF%BC%8 ...
  • 1、下載並安裝好FineReport9.0和SQL Server 2016 2、開始——>所有應用——>Microsoft SQL Server 2016——>SQL Server 2016 Master Data Services Configuration Manager(單擊打開) 3、創建數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...