一、
1、SQL与C数据类型的对应
简单类型
SQL C
CHAR(n) char(n+1)
CHARCTER(n) char *
SMALLINT short int
INTERGER
INT long int
SMALLFLOAT
REAL float
FLOAT
DOUBLE PRECISIONdouble
SERIAL long int
DATE long int
复杂类型
SQL C
DECIMAL
DEC NUMERIC dec_t or struct decimal
MONEY dec_t or struct decimal
DATETIME dtime_t or struct dtime
INREVER intrvl_t or struct intrvl
VARCHAR varchar or string
6、提供DATETIME和INTERVAL算术操作的函数
rdtaddinv(dec_t *dt, int dg, dec_t *in, int iq, dec_t *sum) 把一个INTERVAL值加到一个DATETIME值上。
rdtsub(det_t *dt2, int dq2, dec_t *dt1, int dq1, dec_t *dt0, int dq0) 求两个DATETIME值的差。
7、DATE类型和DATETIME类型之间的转换
DATE→DATETIME
?;定义一个带有修饰符“year to day”的DATETIME变量
?;使用rfmtdate()函数把DATE值转换为一个字符串,使用的模板是yyyy-mm-dd
?;使用dtcvasc()函数把字符串转换成DATETIME类型变量的值。
?;如果需要的话,可以使用dtextend()函数来调整DATETIME的修饰符。
DATETIME→DATE
?;使用dtextend()函数把DATETIME的修饰符调整为“year to day”。
?;使用dttoasc()函数以模板yyyy-mm-dd创建一个字符串。
?;使用rdefmtdate()函数以模板yyyy-mm-dd把字符串转换为一个DATE值。
8、有关DATETIME和INTERVAL值的其他运算
rinvtodec(dec_t *v, int q, dec_t *dec) 把INTERVAL或DATETIME类型的值转换成DECIMAL类型
redectoinv(dec_t *dec, dec_t *v, int q) 把DECIMAL值转换成INTERVAL或DATETIME类型值