【问题标题】:How to select part of a Timestamp in a SQL Query如何在 SQL 查询中选择时间戳的一部分
【发布时间】:2011-08-14 02:29:01
【问题描述】:

在我正在使用的数据库中,我只想从特定的时间戳字段中选择年份。特别是,我希望从这个数据库列中选择独特的年份。

例如,如果字段 "ModifyTimeStamp" 中的所有时间戳都来自 2002 年或 2006 年,我希望只返回“2002”和“2006”的结果。如果这是不可能的,我会满足于得到一堆 '2002' 与 '2006' 混合的结果,然后再解析它。

到目前为止,我所能做的只是"Select ModifyTimeStamp from Table" - 我所有的解析尝试都失败了。我开始阅读有关 SQL 的 extract 命令,但我相信它仅适用于 PostgreSQL。

非常感谢任何建议!

编辑:得到答案,非常感谢 datagod 和 Marc。我正在寻找的代码最终是:

"Select distinct YEAR(ModifyTimeStamp) from Table"

【问题讨论】:

  • 哪个数据库? (另外,随机信息:SQL Server 中的timestamp 与日期或时间无关;-)
  • 抱歉,忘记指定了。 MySQL数据库

标签: mysql sql timestamp distinct extract


【解决方案1】:

您没有指定您正在使用哪个 RDBMS(数据库服务器),但大多数数据库确实具有内置的日期处理功能:

  • MySQL/SQL 服务器:

    select YEAR(modifytimestamp) from yourtable
    
  • 访问/SQL Server:

    select DatePart(year, modifytimestamp) from yourtable
    
  • 甲骨文:

    select TO_CHAR(modifytimestamp, 'YYYY') from yourtable
    

【讨论】:

    【解决方案2】:

    试试这个

    从 YourTable 中选择不同的 datepart(yy,TheDate)

    【讨论】:

    • 这适用于 MS SQL Server,但其他 RDBMS 将有类似的函数调用。
    • 感谢数据神。我的实际命令最终有点不同,但你用“distinct”关键字让我走上了正确的轨道。不敢相信我在搜索中错过了这个......
    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 2016-07-19
    • 2016-10-20
    • 2013-08-07
    • 2020-03-10
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多