SELECT
ship.warship_id AS ship_warship_id,
record_id,
replace_time,
platform,
give_dept,
receive_dept,
record.remark AS record_remark,
id,
receive_time,
repair_time,
type_id,
cxdw_id,
ch.file_id,
ch.remark AS ch_remark,
cxdw_name,
type_code,
type_name,
date_format(str_to_date(replace_time,'%Y-%m-%d'),'%Y.%m.%d') AS time_number
FROM
sys_warship ship
JOIN sys_replace_record record ON record.warship_id = ship.warship_id
LEFT JOIN sys_ch_record ch ON ch.type_id = ship.warship_id UNION ALL
SELECT
ship.warship_id AS ship_warship_id,
record_id,
replace_time,
platform,
give_dept,
receive_dept,
record.remark AS record_remark,
id,
receive_time,
repair_time,
type_id,
cxdw_id,
ch.file_id,
ch.remark,
cxdw_name,
type_code,
type_name,
date_format(str_to_date(substring_index(repair_time,'-',1),'%Y.%m.%d'),'%Y.%m.%d') AS time_number
FROM
sys_warship ship
JOIN sys_ch_record ch ON ch.warship_id = ship.warship_id
LEFT JOIN sys_replace_record record ON record.warship_id = ch.type_id
ORDER BY
time_number desc
substring_index(repair_time,'-',1) -- 截取 第一个-前面的字符串
STR_TO_DATE(replace_time,'%Y%m%d %H:%i:%s') ---- 转为时间格式
concat( ifNULL(replace_time,'' ) AS time_number 将replace_time 字段的数据复制到time_number 里面
注意:转时间格式的时候要看清楚被转字符串的格式--------以下是详细的函数的表达式
date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();
str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();
%Y:代表4位的年份
%y:代表2为的年份
%m:代表月, 格式为(01……12)
%c:代表月, 格式为(1……12)
%d:代表月份中的天数,格式为(00……31)
%e:代表月份中的天数, 格式为(0……31)
%H:代表小时,格式为(00……23)
%k:代表 小时,格式为(0……23)
%h: 代表小时,格式为(01……12)
%I: 代表小时,格式为(01……12)
%l :代表小时,格式为(1……12)
%i: 代表分钟, 格式为(00……59)
%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时(hh:mm:ss)
%S:代表 秒,格式为(00……59)
%s:代表 秒,格式为(00……59)
参考:https://blog.csdn.net/u013456370/article/details/52487807 写的很细