From c7908bf39e14672a2df8fc74826eb519c8623252 Mon Sep 17 00:00:00 2001 From: ray <1416431931@qq.com> Date: Tue, 28 Apr 2026 17:12:33 +0800 Subject: [PATCH] =?UTF-8?q?sql=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aliyun-sync/aliyun-aps-sync/src/db.js | 46 +++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/aliyun-sync/aliyun-aps-sync/src/db.js b/aliyun-sync/aliyun-aps-sync/src/db.js index 44081f6..f86487d 100644 --- a/aliyun-sync/aliyun-aps-sync/src/db.js +++ b/aliyun-sync/aliyun-aps-sync/src/db.js @@ -87,6 +87,48 @@ function safeNumber(value) { return Number.isFinite(normalized) ? normalized : null; } +function safeDate(value) { + const normalized = safeString(value); + if (!normalized) { + return null; + } + if (normalized === '- -' || normalized === '--' || normalized === '-') { + return null; + } + if (/^\d{4}-\d{2}-\d{2}$/.test(normalized)) { + return normalized; + } + const parsed = new Date(normalized.replace(/\./g, '-').replace(' ', 'T')); + if (Number.isNaN(parsed.getTime())) { + return null; + } + const year = parsed.getFullYear(); + const month = String(parsed.getMonth() + 1).padStart(2, '0'); + const day = String(parsed.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +function safeDateTime(value) { + const normalized = safeString(value); + if (!normalized) { + return null; + } + if (normalized === '- -' || normalized === '--' || normalized === '-') { + return null; + } + const parsed = new Date(normalized.replace(/\./g, '-').replace(' ', 'T')); + if (Number.isNaN(parsed.getTime())) { + return null; + } + const year = parsed.getFullYear(); + const month = String(parsed.getMonth() + 1).padStart(2, '0'); + const day = String(parsed.getDate()).padStart(2, '0'); + const hours = String(parsed.getHours()).padStart(2, '0'); + const minutes = String(parsed.getMinutes()).padStart(2, '0'); + const seconds = String(parsed.getSeconds()).padStart(2, '0'); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + async function getCustomerMap() { const [rows] = await getPool().query('SELECT account_id, login_name FROM aps_customer'); const map = new Map(); @@ -229,7 +271,7 @@ export async function upsertCustomers(records) { safeString(record.reportType), safeString(record.tradeMode), safeString(record.authStatus), - safeString(record.relationTime), + safeDateTime(record.relationTime), safeString(record.owner), safeString(record.paymentNoticeStatus), safeString(record.inviteType), @@ -238,7 +280,7 @@ export async function upsertCustomers(records) { safeString(record.customerCategory), safeString(record.remark), safeNumber(record.inactiveMonths), - safeString(record.releasePlanTime), + safeDate(record.releasePlanTime), safeString(record.releasePlanReason), ]); }