我需要转换格式为MM / DD / YYYY HH:MI加AM / PM的字符串,但无法找到格式字符串的完整参考,以找到如何指定AM / PM部分。
我当然感谢有关如何执行此操作的信息,但我们希望能够获得更好的文档来源链接。
:EDIT
SELECT top 1
v.CalendarDateTime
,TO_TIMESTAMP(v.CalendarDateTime,'MM/DD/YYYY HH:MIAM') as CalendarDateTimeTS
--,CAST(TO_TIMESTAMP(v.CalendarDateTime,'MM/DD/YYYY HH:MIAM') AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MIBT') AS CalendarDateTimeTS2
12/03/2015 03:00 AM 12/3/2015 03:00:00.000000
注释掉的行会产生“DateTime字段溢出”错误。
答案 0 :(得分:2)
您可能需要TO_TIMESTAMP
而不是TO_DATE
。
Oracle函数的唯一坏处是生成的TIMESTAMP(6)
数据类型无法更改:
TO_TIMESTAMP('12/03/2015 03:00AM', 'MM/DD/YYYY HH:MIAM')
使用Teradata的FORMAT
您可以指定时间戳精度,但它不如Oracle灵活,字符串必须与格式完全匹配:
CAST('12/03/2015 03:00AM' AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYbHH:MIT')
在Teradata网站上,您可以找到(慢速)在线文档,例如: TO_DATE formats或Teradata FORMATs。当然,您应该为您的版本下载full documentation CD。
答案 1 :(得分:0)
请至少告诉我们您使用的编程语言。 通常它会像" MM / DD / YYYY HH:MI a"但我们需要先了解你的语言。