ASP + SQL Server + NOW()=头痛

时间:2014-11-27 16:47:56

标签: asp.net sql-server sql-server-2008 date

我目前正在使用Visual Web Developer 2010(Express),我正在尝试在SQL查询中使用NOW()命令来允许日期选择,但它不会在随机时间运行而且我是失去了它为什么这样做。

我将举一些例子,我来自英国,我的机器设置为标准时间(与time.windows.com同步),一切都很好但是当我使用= NOW()时它可以工作但是当它似乎并没有输入日期混淆,例如下面:

目前我的表格设置如下:

crew_example

Column 1 : Date (In standard SQL time, so YYYY-MM-DD)
Column 2 : Initial
Column 3 : Surname
etc

我的SQL查询如下:

SELECT Date,
       Initial,
       Surname,
FROM   crew_example
WHERE  ( Date = { fn NOW() } )
ORDER  BY Date 

这个函数正常工作,目前正在处理用户BETWEEN (DATE = { fn NOW() } + 1) AND { fn NOW() } + 6)的另一个SQL查询(我之前设置它时遇到了麻烦,但它神奇地修复了它,从未想过它)。

如果我使用今天的日期27/11/2014,我硬编码时的日期输出无效,但是当我将其“同步”为11/27/2014时即使输出为英国格式27/11/2014 00:00:00

有没有办法统一日期?我是SQL查询的新手,所以如果我可以使用NOW()命令但是将其更改为格式为NOW()的{​​{1}}而不是使用我MM/DD/YYYY的{​​{1}}英国日期类型。

编辑:似乎NOW()可能有用....但是如果这是最好的方式,任何想法都会有效吗?

此致 杰米

1 个答案:

答案 0 :(得分:2)

在T-SQL中我会使用这样的东西:

Where Date between cast(getdate() as date) and cast(dateadd(d,1,getdate()) as date)

我从未使用过"纯粹的"日期栏,所以我不确定你是否需要摆脱演员的时间 对于dateadd(),请参阅:DATEADD (Transact-SQL)
对于cast(),请参阅:CAST and CONVERT (Transact-SQL)