compat_informix-rfmtdate.c
来自「postgresql8.3.4源码,开源数据库」· C语言 代码 · 共 188 行
C
188 行
/* Processed by ecpg (regression mode) *//* These include files are added by the preprocessor */#include <ecpgtype.h>#include <ecpglib.h>#include <ecpgerrno.h>#include <sqlca.h>/* Needed for informix compatibility */#include <ecpg_informix.h>/* End of automatic include section */#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))#line 1 "rfmtdate.pgc"#include <stdio.h>#include <stdlib.h>#include <pgtypes_error.h>#include <sqltypes.h>/* * This file tests various forms of date-input/output by means of * rfmtdate / rdefmtdate / rstrdate */static voidcheck_return(int ret);static voiddate_test_strdate(char *input){ static int i; date d; int r, q; char dbuf[11]; r = rstrdate(input, &d); printf("r: %d ", r); if (r == 0) { q = rdatestr(d, dbuf); printf("q: %d ", q); if (q == 0) { printf("date %d: %s\n", i++, dbuf); } else printf("\n"); } else check_return(r);}static voiddate_test_defmt(char *fmt, char *input){ static int i; char dbuf[11]; date d; int q, r; r = rdefmtdate(&d, fmt, input); printf("r: %d ", r); if (r == 0) { q = rdatestr(d, dbuf); printf("q: %d ", q); if (q == 0) { printf("date %d: %s\n", i++, dbuf); } else printf("\n"); } else check_return(r);}static voiddate_test_fmt(date d, char *fmt){ static int i; char buf[200]; int r; r = rfmtdate(d, fmt, buf); printf("r: %d ", r); if (r != 0) check_return(r); else printf("date: %d: %s\n", i++, buf);}intmain(void){ short mdy[3] = { 11, 23, 1959 }; char dbuf[11]; date d; int r; ECPGdebug(1, stderr); r = rmdyjul(mdy, &d); printf("create: r: %d\n", r); if (r == 0) { rdatestr(d, dbuf); printf("date: %s\n", dbuf); } /* input mask is mmddyyyy */ date_test_strdate("12031994"); date_test_strdate("9.6.1994"); date_test_fmt(d, "mmddyy"); date_test_fmt(d, "ddmmyy"); date_test_fmt(d, "yymmdd"); date_test_fmt(d, "yy/mm/dd"); date_test_fmt(d, "yy mm dd"); date_test_fmt(d, "yy.mm.dd"); date_test_fmt(d, ".mm.yyyy.dd."); date_test_fmt(d, "mmm. dd, yyyy"); date_test_fmt(d, "mmm dd yyyy"); date_test_fmt(d, "yyyy dd mm"); date_test_fmt(d, "ddd, mmm. dd, yyyy"); date_test_fmt(d, "(ddd) mmm. dd, yyyy"); date_test_defmt("ddmmyy", "21-2-54"); date_test_defmt("ddmmyy", "2-12-54"); date_test_defmt("ddmmyy", "20111954"); date_test_defmt("ddmmyy", "130464"); date_test_defmt("mmm.dd.yyyy", "MAR-12-1967"); date_test_defmt("yy/mm/dd", "1954, February 3rd"); date_test_defmt("mmm.dd.yyyy", "041269"); date_test_defmt("yy/mm/dd", "In the year 2525, in the month of July, mankind will be alive on the 28th day"); date_test_defmt("dd-mm-yy", "I said on the 28th of July in the year 2525"); date_test_defmt("mmm.dd.yyyy", "9/14/58"); date_test_defmt("yy/mm/dd", "47/03/29"); date_test_defmt("mmm.dd.yyyy", "oct 28 1975"); date_test_defmt("mmddyy", "Nov 14th, 1985"); /* ok: still contains dd mm yy */ date_test_defmt("bladdfoommbaryybong", "20/11/1954"); /* 1994 is not a leap year, it accepts the date as 01-03-1994 */ date_test_defmt("ddmmyy", "29-02-1994"); /* ECPG_INFORMIX_ENOTDMY, need "dd", "mm" and "yy" */ date_test_defmt("dmy", "20/11/1954"); /* ECPG_INFORMIX_ENOSHORTDATE */ date_test_defmt("ddmmyy", "21254"); date_test_defmt("ddmmyy", " 21254 "); /* ECPG_INFORMIX_BAD_DAY */ date_test_defmt("ddmmyy", "320494"); /* ECPG_INFORMIX_BAD_MONTH */ date_test_defmt("mm-yyyy-dd", "13-1993-21"); /* ECPG_INFORMIX_BAD_YEAR */ /* ??? */ return (0);}static voidcheck_return(int ret){ switch(ret) { case ECPG_INFORMIX_ENOTDMY: printf("(ECPG_INFORMIX_ENOTDMY)"); break; case ECPG_INFORMIX_ENOSHORTDATE: printf("(ECPG_INFORMIX_ENOSHORTDATE)"); break; case ECPG_INFORMIX_BAD_DAY: printf("(ECPG_INFORMIX_BAD_DAY)"); break; case ECPG_INFORMIX_BAD_MONTH: printf("(ECPG_INFORMIX_BAD_MONTH)"); break; default: printf("(unknown ret: %d)", ret); break; } printf("\n");}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?