【问题标题】:Converting MSSQL GetUTCDate() into PHP/Unix/MySQL Ticks将 MSSQL GetUTCDate() 转换为 PHP/Unix/MySQL Ticks
【发布时间】:2010-09-30 08:56:53
【问题描述】:

我正在使用 MsSQL 提供的 GetUTCDate() 函数将 DateTime 插入 MsSQL。

我需要将 C# 中的时间转换为 Unix / MySQL 整数,以便最终可以使用 PHP 进行操作。

我相信 Unix / PHP / MySQL 的时间从 1970 年 1 月 1 日开始,但我不确定如何将等效的 MsSql / C# 时间转换为这个 unix 标准。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# .net php mysql sql-server


    【解决方案1】:

    您可以在 MSSQL 中相对轻松地做到这一点。对于当前日期:

    SELECT DATEDIFF(s, CONVERT(DATETIME, '1970-01-01'), GETUTCDATE())
    

    返回自 1970 年 1 月 1 日以来的 INT 秒数,即 Unix 时间戳。

    【讨论】:

    • 我相信您还需要设置“1970-01-01”格林威治标准时间,所以如果您在纽约,则必须是“1970-01-01 05:00:00.000”
    【解决方案2】:
    DateTime dt = something; //Get from db
    
    TimeSpan ts = dt - new DateTime(1,1,1970); // off the top of my head, check order of params
    
    long ticks = ts.TotalTicks; // again off the top of my head, check property name
    

    【讨论】:

    • 所以基本上只是从 MsSQL 中减去 1970 .. 从 @ 0/0/0000 开始?
    • 这是我使用的方法,尽管这两种方法都可以。谢谢。
    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 2017-12-11
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多