在oracle中将身份证号转换成日期格式sql
Convert ID number into date format in oracle sql
我将 ID 存储在 table 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
你只需要前 8 个字符:
Insert into TEMP_SDR_RECEIVED(ID_DATE)
Select to_date(substr(ID, 1, 8), 'YYYYMMDD') FROM TEMP_SDR_RECEIVED
参见SQLFiddle。
默认情况下,小时/分钟/秒将设置为 0
我将 ID 存储在 table 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
你只需要前 8 个字符:
Insert into TEMP_SDR_RECEIVED(ID_DATE)
Select to_date(substr(ID, 1, 8), 'YYYYMMDD') FROM TEMP_SDR_RECEIVED
参见SQLFiddle。
默认情况下,小时/分钟/秒将设置为 0