【问题标题】:SQL cast int to datetimeSQL将int转换为日期时间
【发布时间】:2012-10-13 19:18:18
【问题描述】:

为什么会出现这条 SQL 语句:

Select cast(convert(1231231231,103) AS datetime)

导致错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法 在第 1 行的“103) AS datetime)”附近使用

我需要将INT 转换为DATETIME,如何使它工作?

【问题讨论】:

  • 看起来您在 MySQL 上使用 SQL Server 语法。 1231231231 应该代表什么日期时间?现在是 UNIX 时间吗?
  • 1231231231 只是一个例子,更接近现实的可能是 1350134926。是的,unix 时间
  • 在 T-sql 中你会使用 Cast 或 convert 正常,并且 Convert 将是 Convert(SomeType,SomeValue[,SomeStyle]),所以如果你正在转换转换后,你只会打扰 cast键入其他类型。

标签: mysql sql tsql select casting


【解决方案1】:

由于您的整数是 unix 时间,您可以使用 FROM_UNIXTIME(unix_timestamp): https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime?

【讨论】:

  • 谢谢!有用!现在的问题是:如何让它独立于引擎(SQL Server、MySQL、T-sql ...)?
  • 我认为您不会为此找到独立于引擎的解决方案。据我所知,MySQL 和 T-SQL 在这里非常不同。
猜你喜欢
  • 2012-05-29
  • 2019-03-07
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多