【问题标题】:Convert getdate() to int将 getdate() 转换为 int
【发布时间】:2012-11-26 18:39:06
【问题描述】:

当我运行以下查询时:

select convert(int, getdate())

我得到了结果:

-----------
41238

(1 row(s) affected)

有人知道这是什么意思吗?

【问题讨论】:

  • 好的!已经找到答案了。就是这几天。 SELECT dateadd(day, convert(int, getdate()), '01/01/1900')
  • 不,是指自 1900 年 1 月 1 日以来的日子。
  • 是的!但这取决于您使用的是什么 DBMS,对吧?或者他们都从 1900 年 1 月 1 日开始计数?
  • 视情况而定,可能但不太可能。询问我们您真正在寻找什么,我们可以提供解决方案,或者您只是在玩 convert()
  • 其实我在搜索如何将 int 转换为 datetime。一件事导致另一件事......

标签: sql casting int getdate


【解决方案1】:

它是我认为1/1/1900 以来的天数,sql-server 保持从那时起的天数。

尝试将该数字除以大约 365。 您应该在几年内获得价值(112)。 自 1900 + 112 = 2012 年起

【讨论】:

    【解决方案2】:

    这是因为 SQL 本身会保留自 01/01/1900 以来的天数

    整数值后面的小数是时间。

    32.5 等于 02/01/1900 12:00 pm

    如果您只想获取和使用日期的一部分作为整数,我建议您使用datepart

    此语句将仅返回月份并将该值转换为整数。

    select convert(int, datepart(mm,getdate())
    

    【讨论】:

      猜你喜欢
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      相关资源
      最近更新 更多