在oracle sql中将ID号转换为日期格式

时间:2015-05-26 14:31:46

标签: sql oracle date numeric

我将ID存储在表TEMP_SDR_RECEIVED中的ID列中,该列具有以下值: 201505264865645884。年份,月份和日期以此ID格式存储在前8个数字中。我想从此ID中提取年,月,日期,并希望在00:00:00列(日期数据类型)中将分钟,小时,秒设置为ID_DATE,其他值为空。因此,将ID转换为日期格式应如下所示:26.05.15 00:00:00 我正在尝试跟踪查询,但得到一个错误,因为小时必须在1到23之间。 这是我的疑问:

Insert into TEMP_SDR_RECEIVED(ID_DATE)
    Select to_date(substr(ID, 1, 14), 'YYYYMMDDHH24MISS') FROM TEMP_SDR_RECEIVED

1 个答案:

答案 0 :(得分:4)

您只需要8个第一个字符:

Insert into TEMP_SDR_RECEIVED(ID_DATE)
Select to_date(substr(ID, 1, 8), 'YYYYMMDD') FROM TEMP_SDR_RECEIVED

请参阅SQLFiddle

默认情况下,小时/分钟/秒将设置为0