【问题标题】:sql date selectsql日期选择
【发布时间】:2012-08-03 14:52:34
【问题描述】:

我想编写一个 select 语句来从我的数据库中查找日期。

在数据库中,我有一个字段 action_date 作为日期类型,日期如下:7/12/2012 17:21:33。 如何获取指定日期之后的所有数据?

所以如果我有这样的数据库:

7/12/2012 17:21:33
7/12/2012 15:21:35
8/12/2012 8:25:35
9/12/2014 8:25:35

我只想得到这些行:

7/12/2012 17:21:33
7/12/2012 15:21:35

【问题讨论】:

  • 你用的是什么数据库软件
  • 到目前为止你尝试过什么?你被困在哪里了?
  • “从指定日期之后”是什么意思?指定日期是哪一天?为什么没有列出 2012 年 12 月 12 日和 2014 年 9 月的行,而这些日期显然是在给定日期 2012 年 7 月之后之后

标签: sql date


【解决方案1】:
select * from
yourtable where yourDateColumn < '2012-12-8' and yourDateColumn >= '2012-12-07'

【讨论】:

  • 如果你也想赶上午夜,也许 "yourDateColumn >= '2012-12-07'" 会更好
【解决方案2】:

您可以使用BETWEEN 比较日期:

select *
from yourTable
where yourDate between '2012-07-12' and '2012-08-12'

或者,如果您正在寻找一个特别是您可以使用的日期。您可以将“2012-07-12”更改为可以传入的参数,以便获取任何日期:

select *
from yourTable
where Cast(datediff(day, 0, yourDate) as datetime) = '2012-07-12'

【讨论】:

  • 问题是询问一天;您正在提供一个月零一天的数据。
  • @JonathanLeffler 已编辑,如果他们只想返回一天,则包括在内。
【解决方案3】:

我认为 Julius 是在询问如何仅获取 7/12/2012 17:21:33 的行

所以我可以为您提供一种被证明是正确的解决方案:

1) 看看T-SQL Convert function的T-SQL Convert函数

2) 当您查看转换代码时,请注意

图片来源:http://technet.microsoft.com/en-us/library/ms187928.aspx

现在当我对这里的理论感到恼火时,这里是代码:

面向欧洲

select * from table_name
where convert(varchar, column_that_has_date_in, 104) = '12.07.2012'

美国

select * from table_name
where convert(varchar, column_that_has_date_in, 101) = '07/12/2012'

还有一件事值得一提的是,为什么当我们输入 sql 语句时,我们会得到 0 行:

select * from table_name
where column_that_has_date_in like '%07/12/2012%'

这是因为查询只查找没有时间部分的日期。

【讨论】:

    【解决方案4】:
    SELECT SUM(your_value)  
    FROM your_Table 
    where value(Date) BETWEEN '2018/04/14' AND '2018/04/14';
    

    【讨论】:

    • 在哪个 SQL 方言中 value(Date) 是一个有效的语法,它有什么作用?如果两个日期与您显示的相同,那么between / and 是如何工作的?
    • SELECT your_value FROM [table] WHERE Date BETWEEN '2018/04/14' AND '2018/04/14';
    • 有一个 edit 链接,因此您可以修复或添加详细信息到您的答案。如果您不仅要转储代码,还要解释它的作用以及为什么您的陈述比其他答案更受欢迎。
    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2014-11-29
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多