将nvarchar日期转换为datetime

时间:2015-05-21 12:25:04

标签: sql sql-server tsql datetime

我将日期存储在sql server数据库中作为nvarchar但我需要创建一个报告并从该日期的最后一天提取数据。

我在数据类型是DateTime时使用它:

select
count(*) NONGENACC,  AFFILIATE,
(SELECT COUNT(ACCOUNTNO) from realdb.tbl_logs)AS ALLACCS
FROM  realdb.tbl_logs
where LASTDATE <> CURDATE() group by AFFILIATE

我认为我需要将SELECT * FROM [table] WHERE timein >= DateAdd(hh, -24, GETDATE()) 转换为字符串以将其与db进行比较 格式必须如下:

GETDATE() -24

有人可以帮我创建一个查询,使用这种日期格式选择过去24小时的记录吗?

1 个答案:

答案 0 :(得分:1)

将timeIn字符串转换为日期,并使用日期而不是字符串进行比较。如果用空格替换连字符,它将能够转换为日期。我假设你想要从前一天开始就想要的值(忽略当前时间),所以我也将它转换为日期。

SELECT *
FROM [table]
WHERE cast(replace(timein, '-', ' ') as date) >= cast(DateAdd(dd, -1, GETDATE()) as date)