小编Shi*_*ver的帖子

如何在不知道日期格式的情况下将日期字符串转换为时间戳

我正在尝试编写一个查询以将值插入到timestamp with no timezone data类型字段中.该值来自CSV文件.

我正在使用的版本是PostgreSQL 8.1.21.

CSV文件上载由客户端完成,它有一个日期列.日期有时是格式'28-Sep-13'而有时'28/09/2013'格式.

我尝试使用以下命令将字符串转换为时间戳: str_date::timestamp.

如果能正常工作str_date是一样的东西'28-Sep-13',但如果输入日期的格式将无法正常工作'28/09/2013',就会出现此错误:

ERROR: date/time field value out of range: "28/09/2013"  
HINT:  Perhaps you need a different "datestyle" setting
Run Code Online (Sandbox Code Playgroud)

基本上,客户端不断更改上载的CSV文件中的日期格式.
有没有办法将日期字符串转换为时间戳取决于其实际格式?

postgresql timestamp date-format bulk-load postgresql-copy

13
推荐指数
2
解决办法
5万
查看次数

创建函数时,在"int"或其附近的postgres错误语法错误

postgres我很新.尝试运行以下脚本时出现此错误:

CREATE OR REPLACE FUNCTION xyz(text) RETURNS INTEGER AS
'DECLARE result int;
BEGIN
    SELECT count(*) into result from tbldealercommissions
    WHERE 
    txtdealercode = $1;

    if result < 1 then returns 1; 
    else returns 2 ;
    end if;
END;
    '
LANGUAGE sql VOLATILE;
Run Code Online (Sandbox Code Playgroud)

错误是

ERROR:  syntax error at or near "int"
LINE 3: 'DECLARE result int;
Run Code Online (Sandbox Code Playgroud)

不确定导致此错误的原因.任何帮助表示赞赏.

postgresql

4
推荐指数
1
解决办法
1万
查看次数