首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >select查询中的SQL日期格式问题

select查询中的SQL日期格式问题
EN

Stack Overflow用户
提问于 2008-10-15 18:59:11
回答 6查看 13.2K关注 0票数 2

我有一个ASP页,这将从SQL服务器数据库表中提取记录。表"order_master“有一个名为order_date的字段。我想构建一个select查询来获取订单日期>用户输入的日期(例如: 07/01/2008)

我尝试了convert和cast,但两者都不起作用。order_date栏目示例数据为4/10/2008 8:27:41 PM实际上,我不知道它是什么类型(varchar/datetime)。

有没有办法做到这一点?

EN

回答 6

Stack Overflow用户

发布于 2008-10-15 19:11:20

我会先检查以确保SQL数据类型是DateTime或SmallDateTime,然后再检查以确保您从页面传入了日期/日期时间值。

如果这两个都是正确的,那么您最好遵循Joel的建议,并在尝试比较之前显式地将这两个值转换为日期。此外,请检查您正在查看的时间值的精度;这似乎很明显,但1/1/200812:00:00.001 AM不等于1/1/2008.12:00:00.000 AM是的,我是凭经验说的。:P

票数 1
EN

Stack Overflow用户

发布于 2008-10-15 19:12:27

日期为07/01/2008是英国/法国注释,因此您需要做的就是:

SELECT myColumn FROM myTable WHERE myDateField >= convert(datetime, '07/01/2008 00:00:00', 103)

此代码将获取myDateField的日期为2008年1月7日的所有行,从00:00:00 (hh:mm:ss)开始,因此,当天的第一秒...简而言之,就是一整天。

有关更多信息,请访问check Books online on MSDN

票数 1
EN

Stack Overflow用户

发布于 2008-10-15 19:02:32

您可以像这样创建一个存储过程

代码语言:javascript
复制
CREATE PROCEDURE GetOrders
    @OrderDate DATETIME
AS
SELECT
    *
FROM order_master
WHERE Order_Date > @OrderDate

GO

然后,在通过ASP代码调用存储过程之前,只需将用户输入转换为日期即可。

编辑

我刚刚注意到关于列类型的注释,您可以运行以下命令

代码语言:javascript
复制
sp_help order_master

获取列信息以查找order_date的数据类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/205975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档