lex*_*eme 4 c# sql datetime sql-server-2008
我有一个简单的查询,我想把当前日期
var query = @"
SELECT trainid, trainnum
FROM trains
WHERE CONVERT(varchar(10), trainstartdate, 104)=" +
" " +
// so that matches the '104' format
String.Format("{0:dd.MM.YYYY}", DateTime.Now) +
" " +
"ORDER BY trainnum";
Run Code Online (Sandbox Code Playgroud)
但是在运行时我收到错误消息:
Cannot call methods on numeric. .Net SqlClient Data Provider
如何以正确的方式指定当前日期?谢谢!
使用GETDATE()
影响:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
使用{0:dd.MM.yyyy}
影响: none
使用CONVERT(varchar(20),GetDate(),104)
影响: that works!
谢谢!
我不会转换为varchar并执行字符串比较.如果你trainstartdate使用>=和比较,性能要好得多<.
您可以使用该T-SQL getDate()方法获取当前日期.
getDate()返回当前日期时间.
2012-02-14 14:51:08.350DATEADD(dd,0,DATEDIFF(dd,0,GETDATE()))仅返回当前日期.`2012-02-14 00:00:00.000
DATEADD(dd,1,DATEDIFF(dd,0,GETDATE()))仅返回tomorow的日期.
2012-02-15 00:00:00.000
var query = @"
SELECT trainid, trainnum
FROM trains
WHERE trainstartdate >=
-- today
DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
AND trainstartdate <
-- tommorow
DATEADD(dd, 1, DATEDIFF(dd, 0, GETDATE()))
ORDER BY trainnum"
Run Code Online (Sandbox Code Playgroud)
注意: 如果您希望符合ANSI标准,CURRENT_TIMESTAMP也会这样做.
| 归档时间: |
|
| 查看次数: |
6334 次 |
| 最近记录: |