返回首页

gbase数据、南大通用产品文档:GBase8aFROM_UNIXTIME()

更新日期:2024年09月11日

语法
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,FORMAT)
函数说明
以“YYYY-MM-DD HH:MI:SS”或“YYYYMMDDHHMISS”格式返回一个
unix_timestamp 参数值,返回值的形式取决于它使用在字符串中还是数字中。
如果FORMAT 已经给出,
则返回值的格式依照FORMAT 字符串的格式。
FORMAT
可以包含与DATE_FORMAT()函数同样的修饰符。
示例
示例1:返回“YYYY-MM-DD HH:MI:SS”格式的日期时间值。
gbase> SELECT FROM_UNIXTIME(1585736116) FROM dual;
+---------------------------+
| FROM_UNIXTIME(1585736116) |
+---------------------------+
| 2020-04-01 18:15:16
|
+---------------------------+
1 row in set
示例2:FORMAT 为“%Y %D %M %h:%i:%s %x”。
gbase> SELECT
FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x')
FROM dual;
+--------------------------------------------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
796
| FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x') |
+--------------------------------------------------------+
| 2020 1st April 06:16:54 2020
|
+--------------------------------------------------------+
1 row in set

有两种方法给集合变量赋值:
l
调用构造函数创建一个集合并值赋值给集合变量。
l
使用赋值语句将另外已经存在的集合变量赋值给集合变量。同一类型的集合变量
之间可以互相赋值,仅元素类型相同,但集合名不同,也不允许赋值。

dectolong() 函数将 decimal 类型数值转换为 int4 类型数值。
语法
mint dectolong(dec_val, lng_val)
dec_t *dec_val;
int4 *lng_val;
dec_val
指向 dectolong() 将其值转换为 int4 整数的 decimal 结构的指针。
lng_val
指向 dectolong() 放置转换的结果处的 int4 整数的指针。

返回代码
0
转换成功。
-1200
decimal 类型数值的大小大于 2,147,483,647。

示例

demo 目录中的文件 dectolong.ec 包含下列样例程序。
/*
* dectolong.ec *

The following program converts two DECIMAL numbers to longs and displays the return
value and the result for each conversion.
*/

#include

EXEC SQL include decimal;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 667 -

char string1[] = "2147483647";
char string2[] = "2147483648";

main()
{
int x;
long n = 0;
dec_t num;

printf("DECTOLONG Sample ESQL Program running.\n\n");

printf("String 1 = %s\n", string1);
if (x = deccvasc(string1, strlen(string1), #))
{
printf(" Error %d in converting string1 to DECIMAL\n", x);
exit(1);
}
if (x = dectolong(#, &n))
printf(" Error %d in converting DECIMAL1 to long\n", x);
else
printf(" Result = %ld\n", n);

printf("\nString 2 = %s\n", string2);
if (x = deccvasc(string2, strlen(string2), #))
{
printf(" Error %d in converting string2 to DECIMAL\n", x);
exit(1);
}
if (x = dectolong(#, &n))
printf(" Error %d in converting DECIMAL2 to long\n", x);
else
printf(" Result = %ld\n", n);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 668 -

printf("\nDECTOLONG Sample Program over.\n\n");
exit(0);
}
输出

DECTOLONG Sample ESQL Program running.

String 1 = 2147483647
Result = 2147483647

String 2 = 2147483648
Error -1200 in converting DECIMAL2 to long

DECTOLONG Sample Program over.