| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/usr/bin/env tsx
- /**
- * 验证 works 和 work_day_statistics 表的时间字段格式
- */
- import { initDatabase } from '../models/index.js';
- import { AppDataSource } from '../models/index.js';
- import { logger } from '../utils/logger.js';
- async function verifyTimestampFormat() {
- try {
- await initDatabase();
- logger.info('数据库连接已初始化');
- logger.info('\n========================================');
- logger.info('验证时间字段格式...');
- logger.info('========================================\n');
- // 检查 works 表
- logger.info('works 表示例数据:');
- const works = await AppDataSource.query(`
- SELECT id,
- 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 works
- ORDER BY id DESC
- LIMIT 5
- `);
- works.forEach((row: any) => {
- logger.info(` ID ${row.id}:`);
- logger.info(` created_at (原始): ${row.created_at}`);
- logger.info(` created_at (格式化): ${row.created_at_formatted}`);
- logger.info(` updated_at (原始): ${row.updated_at}`);
- logger.info(` updated_at (格式化): ${row.updated_at_formatted}`);
- });
- // 检查 work_day_statistics 表
- logger.info('\nwork_day_statistics 表示例数据:');
- const stats = await AppDataSource.query(`
- SELECT id,
- 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 work_day_statistics
- ORDER BY id DESC
- LIMIT 5
- `);
- stats.forEach((row: any) => {
- logger.info(` ID ${row.id}:`);
- logger.info(` created_at (原始): ${row.created_at}`);
- logger.info(` created_at (格式化): ${row.created_at_formatted}`);
- logger.info(` updated_at (原始): ${row.updated_at}`);
- logger.info(` updated_at (格式化): ${row.updated_at_formatted}`);
- });
- // 检查表结构
- logger.info('\n检查表结构:');
- const worksStructure = await AppDataSource.query(`
- SHOW COLUMNS FROM works WHERE Field IN ('created_at', 'updated_at')
- `);
- logger.info('works 表字段类型:');
- worksStructure.forEach((col: any) => {
- logger.info(` ${col.Field}: ${col.Type}`);
- });
- const statsStructure = await AppDataSource.query(`
- SHOW COLUMNS FROM work_day_statistics WHERE Field IN ('created_at', 'updated_at')
- `);
- logger.info('work_day_statistics 表字段类型:');
- statsStructure.forEach((col: any) => {
- logger.info(` ${col.Field}: ${col.Type}`);
- });
- logger.info('\n========================================');
- logger.info('验证完成!');
- logger.info('========================================\n');
- } catch (error: any) {
- logger.error('验证失败:', error);
- if (error instanceof Error) {
- logger.error('错误堆栈:', error.stack);
- }
- process.exit(1);
- } finally {
- await AppDataSource.destroy();
- process.exit(0);
- }
- }
- verifyTimestampFormat().catch(console.error);
|