如何在SQL中将时间戳转换为日期?

时间:2016-09-25 20:03:21

标签: sql sql-server

图片:http://i.stack.imgur.com/CyyHo.jpg

我有一个数据集,如图所示。我想将created_date列的值用作class A { do() { console.log("do A"); } } class B extends A { do() { console.log("do B"); } doB() { console.log("what"); } } var a = new A(); var b = new B(); a.do(); b.do(); b.doB(); console.log(a instanceof A) // true console.log(a instanceof B) // false console.log(b instanceof A) // true console.log(b instanceof B) // true class Base { doBase() { console.log("this is the base!"); } } // now add Base to B's chain, so that B -> A -> Base // TODO: doesn't work! Object.setPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(B)), Base.prototype) //Object.setPrototypeOf(Object.getPrototypeOf(B), Base) console.log(Object.getPrototypeOf(B)) console.log(Object.getPrototypeOf(Object.getPrototypeOf(B))) var c = new B(); console.log(c instanceof B) // true console.log(c instanceof A) // true console.log(c instanceof Base) // false (!!! how to fix it?) c.doBase(); // crash, not a function 格式。我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

您要转换的时间称为Unix timestamp,这表示自1970/01/01以来经过了多少秒。在这种情况下,您将不得不使用DATA函数,该函数将占用总秒数并将它们添加到1970/01/01。

在SQL中,它以下列方式完成:

select DATEADD(s, dateTimeInSeconds, '19700101')

s是秒,而dateTimeInSeconds是你的日期值; '19700101'是一个起点。

答案 1 :(得分:1)

试试这个:

banner-noche-estrellas-zacatecas2015_2.jpg

Demo - online

注意:基本上它在mm和ss之间插入banner-noche-estrellas-zacatecas2015_02.jpg分隔符,介于hh和mm之间,并且它还在DT和TM之间插入SELECT create_date, CONVERT(DATETIME, STUFF(STUFF(STUFF(x.create_date, 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')) AS create_date_AsDT FROM (SELECT '20160925151849') AS x(create_date) (空格(1))。因此,:变为。此结束值是有效的DT字符串,可以从VARCHAR TO DATETIME无问题地转换(独立于'20160925151849'设置)。

答案 2 :(得分:0)

类型' epoch'的created_date?您是否尝试在SQL数据库或业务逻辑中使用日期时间格式?如果它在业务逻辑中,那么它取决于您使用的语言。我很乐意帮助,但我不完全理解用例。如果您能提供更多可以帮助我们的信息!

干杯!

答案 3 :(得分:0)

它看起来不像unix时间戳,但是没有一些字符的日期时间(只剩下数字)。

获得真实的"在MySql中使用时间戳:unix_timestamp()

转换"真实"在MySql中使用timestamp到datetime:FROM_UNIXTIME()

要将列转换为日期时间,请使用:

    CONCAT(SUBSTR(created_date, 1, 4),
        '-',
        SUBSTR(created_date, 5, 2),
        '-',
        SUBSTR(created_date, 6, 2),
        ' ',
        SUBSTR(created_date, 7, 2),
        ':',
        SUBSTR(created_date, 11, 2),
        ':',
        SUBSTR(created_date, 13, 2))

答案 4 :(得分:0)

列值似乎不是TimeStamp。 使用以下脚本将值设为datetime。

    SELECT credits,amount,city,
                  CONVERT(DATETIME,LEFT(created_date,8)
                  +' '+SUBSTRING(created_date,9,2)
                  +':'+SUBSTRING(created_date,11,2)
                  +':'+RIGHT(created_date,2)) Created_Date
    FROM YourTable