将字符串转换为MonetDB中的时间戳

时间:2014-11-14 23:31:14

标签: monetdb

如何将字符串/ varchar转换为MonetDB中的时间戳?

像这样,但精度为毫秒(理想情况下为小数点后六位):

sql>select str_to_date('2008-09-19-18.40.09.812000', '%Y-%m-%d-%H.%M.%6S');
+--------------------------+
| str_to_date_single_value |
+==========================+
| 2008-09-19               |
+--------------------------+
1 tuple (0.312ms)

我不确定str_to_date是否内置,或者我是否在很久以前创建它并忘记了。

create function str_to_date(s string, format string) returns date
external name mtime."str_to_date";

修改:预期输出类似

+---------------------------------+
| str_to_timestamp_single_value   |
+=================================+
| 2008-09-19 18:40:09.812000      |
+---------------------------------+

2 个答案:

答案 0 :(得分:1)

Monetdb时间转换功能列于:

  • [Monetdb安装文件夹] \ MonetDB5 \ lib \ monetdb5 \ createdb \ 13_date.sql。

除了str_to_date函数之外,还有一个str_to_timestamp函数。

格式字符串的语法遵循the MySQL one

示例:

select sys.str_to_timestamp('2016-02-04 15:30:29', '%Y-%m-%d %H:%M:%S');

答案 1 :(得分:0)

可能需要更改日期/时间说明符:

select str_to_date('2008-09-19-18.40.09.812000','%Y-%m-%d-%H.%i.%s.%f')

输出:

2008-09-19 18:40:09.812000

* monetdb可能不同,但在标准SQL these are the standard date specifiers中。

除了date_format

之外,您还可以使用str_to_date
select date_format(str_to_date('SEP 19 2008 06:40:09:812PM','%M %D %Y %h:%i:%s:%f%p'),'%Y-%m-%d-%H.%i.%f');

输出:

2008-09-19-18.40.812000