1. 程式人生 > >儲存過程 生成一張日曆表

儲存過程 生成一張日曆表

目錄

描述:輸入想要生成的年份,呼叫儲存過程,即可生成該年的全部日曆。

儲存過程執行後效果圖

操作步驟:

1、建立表結構:

CREATE TABLE
    calendar_info
    (
        cty VARCHAR(5) COMMENT '國家',
        cdr_Code VARCHAR(5) COMMENT '日曆程式碼',
        date_string VARCHAR(20) COMMENT '日期String型別',
        YEAR CHAR(4) COMMENT '年',
        MONTH CHAR(2) COMMENT '月',
        week CHAR(1),
        DAY CHAR(2) COMMENT '日',
        hour CHAR(2) COMMENT '時',
        cdr_date DATETIME COMMENT '日曆日期',
        creator VARCHAR(32) COMMENT '建立人',
        create_date DATETIME COMMENT '建立日期',
        create_inst VARCHAR(20) COMMENT '建立機構',
        del_flag CHAR(1) COMMENT '刪除標誌',
        tms TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE 
            CURRENT_TIMESTAMP COMMENT '時間戳',
        INDEX index_calendar_info_hour (hour),
        INDEX index_calendar_info_hour_month (MONTH)
    )
    ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='日曆表';

 2、建立儲存過程

我是在 Navicat 工具中新建的,函式如下:

BEGIN
declare i int;
declare start_date varchar(20);
declare end_date varchar(20);
declare date_count int;

    set i=0;  
    set start_date= concat(yr, '-01-01');
    set end_date = concat(yr+1,'-01-01');
    DELETE from calendar_info where year = yr;
    set date_count = datediff(end_date, start_date);
        
    while i < date_count DO  
        INSERT into calendar_info (CTY,CDR_CODE,date_String,YEAR,MONTH,WEEK,DAY,HOUR,CDR_DATE,CREATOR,CREATE_DATE,CREATE_INST)  
            SELECT
            		'CN',
            		'CN01',
                DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y/%m/%d') date_String,
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y') YEAR,
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%m') MONTH,
            		case DAYOFWEEK(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'))  when 1 then '7' when 2 then '1' when 3 then '2' when 4 then '3' when 5 then '4' when 6 then '5' when 7 then '6' end WEEK,
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%d') DAY,
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%H') HOUR,
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d') CDR_DATE,
            		'baicun',
            		DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d %H:%i:%s') CDR_DATE,
            		'ccx'
        from dual;  
        set i=i+1;  
        set start_date = DATE_FORMAT(date_add(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),interval 1 day),'%Y-%m-%d');  
    end while;  
END

 3、呼叫函式

CALL function_calendar_procedures(2018);--生成2018年日曆

相關推薦

儲存過程 生成日曆表

目錄 描述:輸入想要生成的年份,呼叫儲存過程,即可生成該年的全部日曆。 儲存過程執行後效果圖 操作步驟: 1、建立表結構: CREATE TABLE calendar_info ( cty VARCHAR(5) COM

oracle儲存過程將某表一個欄位的多值分開成多條資料插入到新表

create or replace PROCEDURE PRO_MANDATESCOPE (dataid in varchar2,tablename in varchar2 ) AS

C#運用儲存過程新增條記錄並返回自動生成的ID

前言: 1、儲存過的好處: 儲存過程相對於其他的資料庫訪問方法有以下的優點: (1)重複使用。儲存過程可以重複使用,從而可以減少資料庫開發人員的工作量。 (2)提高效能。儲存過程在建立的時候就進行了編譯,將來使用的時候不用再重新編譯。一般的SQL語句每執行一次就需要編譯一次

java生成圖片

pos phi getheight sce ack 圖片 eth user led public class CreateImage { public stat

使用html2canvas生成圖片

註意事項 line htm 正式 支持 play lock spl span 註意事項: 1、圖片生成問題,生成圖片測試機正常傳到正式機,無法生成!!====》》原因是正式機中,使用的是CDN加載,導致圖片跨域,而canvas不支持圖片跨域!!!==》》把圖片的CDN引用路

生成可掃碼支付(打賞)的加密圖片

如果 關聯 掃描 余額 存在 網上 註冊 href 來講 "18大街"是一個可以對圖片進行二維碼加密的網絡平臺。登陸後,將原始圖片上傳,就可以生成一張加密的網絡圖片。 這張網絡圖片可以發布在自己的網站,博客,論壇,QQ群等網上的任何角落。網民用戶只需手機掃一掃圖片上的二維碼

儲存過程維陣列接受按分割符拆分的資料

declare -- Local variables here i integer; Lar_Input t_Arr.Arrname; --一維陣列接收 按分隔符拆分 begin -- Test statements here Pkg_n_Cst_String.Pr

PMP專案管理的49個過程圖讓你全部瞭解

專案管理的49個過程,看錶格顯得比較單調,印象也不是很深,所以今天小編就給大家發一張圖片,可以用一張圖就能生動又詳細的瞭解PMP專案管理的49個過程。   大家看完是不是覺得一目瞭然了呢,圖片上傳後不知道是不是清楚,大家覺得不清楚的可以

利用資料庫的儲存過程生成java的formbean物件

根據表名生成相應的javabean,欄位都是字串的 --執行過程 begin   -- Call the procedure   prc_common_formbean(ps_projec

SQL儲存過程生成一個指定長度的隨機字串

if exists(select name from sysobjects where name='xsGetRandChar') drop proc xsGetRandChar go -- ==

資料庫的儲存過程

1.什麼是儲存過程?它有哪些優點 儲存過程是一組預編譯的SQL語句 它的優點有: 允許模組化程式設計,意思就是說只需要建立一次過程,以後在程式中就可以呼叫該過程任意次。 允許更快執行,如果某操作需要執行大量SQL語句或重複執行,儲存過程比

Sql server儲存過程以及次插入多條記錄

首先簡單介紹sql server儲存過程吧。至於概念含義啥的就不做過多介紹了。它其實和mysql有些類似,語法大同小異。 還是用例子說明問題吧。CREATE PROCEDURE insert_supplier @supplier_name varchar(30), @sup

PHP生成含有二維碼的圖片(文章末尾附程式碼下載連結)

PHP生成一張圖片用到的類有QRcode,QRencode ,QRtools , QRimage這四個類是主要的。 主導類:QRcode 輔助類:QRencode, QRimage ,QRtools . 請看下圖, 直接貼原始碼!!! 1、直接呼叫函式(

Oracle儲存過程總結(、基本應用)

1、建立儲存過程 create or replace procedure test(var_name_1 in type,var_name_2 out type) as --宣告變數(變數名 變數型別) begin --儲存過程的執行體 end test; 打印出輸入的時間

Oracle用儲存過程查詢多表的方法

前用企業庫讀SQL Server返回資料集沒任何問題,可以返回1個也可以返回多個,讀Oracle的時候返回一個數據集的時候也沒問題,可是最近在用Oracle返回多個數據集的時候卻出了問題,幾經輾轉,終於找到了解決方案,記下來!一定要記下來!千萬不可忘記!!!!!!! 以

mysql/mariadb將選擇查詢的結果重新生成新表格

比如想要生成類似如下的表格 mysql> select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit from student,sc,course where student.sno=sc.sno and sc.cn

Android使用byte陣列生成灰度圖

一、在Java裡,保持一張圖片使用byte陣列,這樣在傳送資料到網路時就非常的方便。最近組長要我用一個300*400的byte陣列,通過一個執行緒不斷改變裡面的值,比如讓所有的位置上的值從0~255輪轉,然後生產一張灰度圖。一開始鬱悶,怎麼做都是彩色的圖片,然後

Oracle儲存過程生成大量不重複的隨機數

存放隨機數的表結構:create table COUPON_CODE( ID NUMBER(22),--主鍵 CODE VARCHAR2(10),--隨機數 USED VARCHAR2(2)--是否使用標識)需求說明:生成1億條隨機數存放到code欄位,欄位id為主

Qt 生成圖片

QImage saveImage(QSize(imageWidth,imageHeigth),QImage::Format_RGB888); QFile file(filePath); if (!file.open(QIODevice::ReadWrite)) { return fal

音視訊入門-12-手動生成PNG圖片

* 音視訊入門文章目錄 * 預熱 上一篇 【PNG檔案格式詳解】詳細介紹了 PNG 檔案的格式。 PNG 影象格式檔案由一個 8 位元組的 PNG 檔案署名域和 3 個以上的後續資料塊(IHDR、IDAT、IEND)組成。 PNG 檔案包括 8 位元組檔案署名(89 50 4E 47 0D 0A 1A 0A,