将varchar转换为日期Sql

时间:2013-04-01 01:10:31

标签: sql sql-server

我有像这样的表数据

date       time       data 
25/09/07   07:49:08   A 
25/09/07   08:49:08   b 
25/09/07   08:50:08   c 
25/09/07   09:49:08   d 
26/09/07   05:21:08   e 
26/09/07   07:10:08   f 
26/09/07   09:21:08   g 

表sql中的格式日期为varchar

我想像这样显示表格

date       time      data 
25/09/07   07:49:08   A 
25/09/07   08:49:08   b 
25/09/07   08:50:08   c 
25/09/07   09:49:08   d 

如何使用25/09/07 00:00:00和25/09/07 23:59:00之间的日期查询?

2 个答案:

答案 0 :(得分:0)

这应该非常简单,因为你可以比较字符串:

SELECT *
FROM myTable
WHERE date = '25/09/07'
AND time <= '23:59:00'
  • 由于您只是检查一个日期而不是范围,因此您只需使用字符串=进行比较即可。具有不同日期的任何行都不相等。

  • 由于时间安排为hh:MM:ss的24小时格式,您可以进行词法比较。也就是说,例如,“23:58:03”将小于“23:59:00”,“02:03:59”也是如此。


要选择一系列日期,最简单的方法可能是:

SELECT *
FROM myTable
WHERE (CONVERT(datetime, date, 3) >= '2007-09-25'
       AND CONVERT(datetime, date, 3) < '2007-10-25')
OR    (CONVERT(datetime, date, 3) = '2007-10-25' AND time <= '23:59:00')

答案 1 :(得分:0)

在日期上使用'='运算符。您可能不需要包括时间。

SELECT *
FROM   table1 t1
WHERE  t1.date = '25/09/07'

干杯