SQL - 日期时间转换+参数

时间:2013-11-25 11:46:51

标签: sql sql-server datetime

网上有很多关于这个的东西,但我不能让任何事情正常工作。

我需要找到特定表格中的所有内容,其中我的参数的日期在此表格的'timestamp'datetime中找到

让我们说吧。

Select g.* 
From egtable..headerinfo as g
WHERE g.istatus BETWEEN 5 AND 10 AND
REPLACE(LEFT(CONVERT (varchar, timestamp, 101),10),' ','-') = convert(datetime,'<%parameterDate%>')

时间戳显示为'yyyy-mm-dd hh:mm:ss' 我的参数日期将是'mm / dd / yyyy'

我的目标是最终去除时间,转换日期然后与参数进行比较。 任何有关这方面的帮助将不胜感激。我尝试过无数种组合似乎没有任何效果:(

由于 乙

2 个答案:

答案 0 :(得分:0)

假设您使用的是MySQL,因为您没有说明您使用的内容,您可以使用它:

Select g.* 
From egtable..headerinfo as g
WHERE g.istatus BETWEEN 5 AND 10 AND
 timestamp = MAKEDATE(SUBSTRING('<%parameterDate%>', 4, 2), 
                      SUBSTRING('<%parameterDate%>', 1, 2), 
                      SUBSTRING('<%parameterDate%>', 6, 4))

MySQL中的MAKEDATE根据接收日,月,年输入为您创建日期字段

答案 1 :(得分:0)

如果您正在使用SQL Server(您的查询看起来像这样)并且您的SQL Server版本号是2008及更高版本,则可以通过将datetime转换为{{1}来轻松删除date的时间部分}}

cast(datetimecolumn as date)

在你的情况下,它将是:

Select g.* 
From egtable..headerinfo as g
WHERE g.istatus BETWEEN 5 AND 10 AND
cast([timestamp] as date) = cast('<%parameterDate%>' as date)