Files
dtic-DIIAA/adn/tools/cli/verificar_zona_horaria_dasu.rb
T

67 lines
2.2 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
require_relative 'drones/lib/dasu_executor'
puts "=== DASU-SQL4 - Verificar Zona Horaria ==="
puts ""
ps_script = <<~PSCMD.strip
$ErrorActionPreference = "Stop"
Write-Host "[1] Zona horaria del sistema:"
$tz = Get-TimeZone
Write-Host " ID: $($tz.Id)"
Write-Host " DisplayName: $($tz.DisplayName)"
Write-Host " BaseUtcOffset: $($tz.BaseUtcOffset)"
Write-Host "`n[2] Fecha/hora actual del sistema:"
Write-Host " Get-Date: $(Get-Date)"
Write-Host " Get-Date -Format 'o': $(Get-Date -Format 'o')"
Write-Host " [DateTime]::Now: $([DateTime]::Now)"
Write-Host " [DateTime]::UtcNow: $([DateTime]::UtcNow)"
Write-Host "`n[3] Fecha/hora en SQL Server:"
$connString = "Server=localhost;Database=master;Integrated Security=true;TrustServerCertificate=yes;"
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
$conn.Open()
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT GETDATE() as fecha_sql", $conn)
$fecha = $cmd.ExecuteScalar()
Write-Host " GETDATE(): $fecha"
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT SYSUTCDATETIME() as utc_sql", $conn)
$utc = $cmd.ExecuteScalar()
Write-Host " SYSUTCDATETIME(): $utc"
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT SYSDATETIMEOFFSET() as offset_sql", $conn)
$offset = $cmd.ExecuteScalar()
Write-Host " SYSDATETIMEOFFSET(): $offset"
$conn.Close()
Write-Host "`n[4] Verificando fecha en BonosAfiliado:"
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
$conn.Open()
$conn.ChangeDatabase("sysdasuten")
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT TOP 5 fecha, __tiempo, impresion
FROM BonosAfiliado
WHERE fecha IS NOT NULL
ORDER BY fecha DESC
", $conn)
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$adapter.Fill($ds)
$ds.Tables[0].Rows | ForEach-Object {
Write-Host " fecha=$($_.fecha) | __tiempo=$($_.__tiempo) | impresion=$($_.impresion)"
}
$conn.Close()
PSCMD
DasuExecutor.execute_ps_on_dasu(ps_script)
puts "\n✅ Verificación completada"