71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
/**
|
|
* Verify that time fixes were applied correctly
|
|
*/
|
|
|
|
import { rawQuery } from '../src/db.js';
|
|
import dotenv from 'dotenv';
|
|
|
|
dotenv.config();
|
|
|
|
async function verify() {
|
|
console.log('🔍 Verifying time fixes...\n');
|
|
|
|
// Check for any remaining single-digit hours
|
|
const remaining = await rawQuery(`
|
|
SELECT COUNT(*) as total
|
|
FROM "OptionsFlow_monthly"
|
|
WHERE "CreatedTime" IS NOT NULL
|
|
AND (
|
|
"CreatedTime"::text ~ '^[1-9]:[0-9]{2}:[0-9]{2}\\s*(AM|PM)$'
|
|
OR "CreatedTime"::text ~ '^[1-9]:[0-9]{2}\\s*(AM|PM)$'
|
|
);
|
|
`);
|
|
|
|
const remainingCount = remaining[0]?.total || 0;
|
|
console.log(`Single-digit hour entries remaining: ${remainingCount}`);
|
|
|
|
if (remainingCount > 0) {
|
|
console.log('⚠️ Some entries still need fixing');
|
|
} else {
|
|
console.log('✅ All single-digit hours have been fixed!');
|
|
}
|
|
|
|
// Check specific times from error message
|
|
const specificCheck = await rawQuery(`
|
|
SELECT "CreatedTime", COUNT(*) as cnt
|
|
FROM "OptionsFlow_monthly"
|
|
WHERE "CreatedDate" = '2025-12-17'
|
|
AND (
|
|
"CreatedTime" LIKE '%2:30%'
|
|
OR "CreatedTime" LIKE '%2:31%'
|
|
)
|
|
GROUP BY "CreatedTime"
|
|
ORDER BY cnt DESC;
|
|
`);
|
|
|
|
console.log('\nTimes matching 2:30 or 2:31 on 2025-12-17:');
|
|
if (specificCheck.length === 0) {
|
|
console.log(' ✅ None found - all fixed!');
|
|
} else {
|
|
specificCheck.forEach(r => console.log(` ${r.CreatedTime}: ${r.cnt} occurrences`));
|
|
}
|
|
|
|
// Show sample of properly formatted times
|
|
const sample = await rawQuery(`
|
|
SELECT "CreatedTime", COUNT(*) as cnt
|
|
FROM "OptionsFlow_monthly"
|
|
WHERE "CreatedDate" = '2025-12-17'
|
|
AND "CreatedTime" IS NOT NULL
|
|
AND "CreatedTime"::text ~ '^[0-9]{2}:[0-9]{2}:[0-9]{2}\\s*(AM|PM)$'
|
|
GROUP BY "CreatedTime"
|
|
ORDER BY cnt DESC
|
|
LIMIT 10;
|
|
`);
|
|
|
|
console.log('\n✅ Sample of properly formatted times on 2025-12-17:');
|
|
sample.forEach(r => console.log(` ${r.CreatedTime}: ${r.cnt} occurrences`));
|
|
}
|
|
|
|
verify().then(() => process.exit(0)).catch(e => { console.error(e); process.exit(1); });
|
|
|