| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { AppDataSource } from '../models/index.js';
- import { logger } from '../utils/logger.js';
- async function checkTimestampFormat() {
- try {
- await AppDataSource.initialize();
- logger.info('[Check] Database connected');
- // 查看表结构
- const tableStructure = await AppDataSource.query(`
- SELECT
- COLUMN_NAME,
- DATA_TYPE,
- COLUMN_TYPE,
- COLUMN_DEFAULT,
- IS_NULLABLE
- FROM INFORMATION_SCHEMA.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'user_day_statistics'
- AND COLUMN_NAME IN ('created_at', 'updated_at')
- ORDER BY COLUMN_NAME
- `);
- logger.info('[Check] Table structure:');
- for (const col of tableStructure) {
- logger.info(`[Check] ${col.COLUMN_NAME}:`);
- logger.info(`[Check] DATA_TYPE: ${col.DATA_TYPE}`);
- logger.info(`[Check] COLUMN_TYPE: ${col.COLUMN_TYPE}`);
- logger.info(`[Check] DEFAULT: ${col.COLUMN_DEFAULT}`);
- }
- // 查看实际数据
- logger.info('[Check] Sample data (raw):');
- const sampleData = await AppDataSource.query(`
- SELECT
- id,
- account_id,
- record_date,
- created_at,
- updated_at,
- DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS created_at_formatted,
- DATE_FORMAT(updated_at, '%Y-%m-%d %H:%i:%s') AS updated_at_formatted
- FROM user_day_statistics
- ORDER BY id DESC
- LIMIT 10
- `);
- for (const row of sampleData) {
- logger.info(`[Check] ID ${row.id}:`);
- logger.info(`[Check] created_at (raw): ${row.created_at}`);
- logger.info(`[Check] created_at (formatted): ${row.created_at_formatted}`);
- logger.info(`[Check] updated_at (raw): ${row.updated_at}`);
- logger.info(`[Check] updated_at (formatted): ${row.updated_at_formatted}`);
- }
- // 检查是否有 TIMESTAMP 类型的数据需要转换
- const timestampCheck = await AppDataSource.query(`
- SELECT COUNT(*) as count
- FROM user_day_statistics
- WHERE created_at IS NOT NULL
- `);
- logger.info(`[Check] Total records with timestamps: ${timestampCheck[0].count}`);
- process.exit(0);
- } catch (error) {
- logger.error('[Check] Error:', error);
- process.exit(1);
- } finally {
- if (AppDataSource.isInitialized) {
- await AppDataSource.destroy();
- }
- }
- }
- void checkTimestampFormat();
|