从SQL查询结果解释日期

时间:2019-06-12 09:05:09

标签: sql sql-server

因此,我正在从SQL DB查询特定的表。该表包含与日期相关的几列。 当我在表上使用Select查询时,结果显示如下,其中显示了一些别名/随机数而不是实际日期(F_CRTM和F_EDTM表示显示实际日期的列)。 有人可以帮助我如何获取所需的实际值(在这种情况下为日期)。我试图查看表的结构,但是不幸的是我没有访问该表的结构。因此,我不知道这是因为表本身的结构方式还是我可以做些什么。

我得到的结果如下所示:

 F_SGRP          F_CRTM          F_EDTM
    1452759805  1452759805       1452759805
    1452759946  1452759946       1452759946
    1452759975  1452759975       1452759975
    1452760148  1452760148       1452761593
    1452760411  1452760411       1452761580
    1452761896  1452761896       1452761896
    1452761903  1452761903       1452761903

2 个答案:

答案 0 :(得分:0)

只需使用日期算术:

select date_add(second, F_SGRP, '1970-01-01') as F_SGRP_DATETIME,
       date_add(second, F_CRTM, '1970-01-01') as F_CRTM_DATETIME,
       date_add(second, F_EDTM, '1970-01-01') as F_EDTM_DATETIME
from t;

这些看起来像Unix风格的日期时间格式,因此该值是从1970-01-01开始的秒数。

答案 1 :(得分:-1)

好的,只需使用from_unixtime来实现您的要求,示例如下:

mysql> select from_unixtime(1452759805) as time;
+---------------------+
| time                |
+---------------------+
| 2016-01-14 16:23:25 |
+---------------------+
1 row in set (0.00 sec)

mysql> select date(from_unixtime(1452759805)) as date;
+------------+
| date       |
+------------+
| 2016-01-14 |
+------------+
1 row in set (0.00 sec)

所以您可能需要完整的SQL:

select
    date(from_unixtime(F_SGRP)) as F_SGRP_DATE,
    date(from_unixtime(F_CRTM)) as F_CRTM_DATE,
    date(from_unixtime(F_EDTM)) as F_EDTM_DATE
from
    your_table