Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server按指定日期查询订单_Sql_Sql Server - Fatal编程技术网

sql server按指定日期查询订单

sql server按指定日期查询订单,sql,sql-server,Sql,Sql Server,我的数据库是SQL Server,问题是日期存储为字符串类型。如果我执行该查询,它的顺序就不正确 我想做的是,在早上7点到8点之间获取每天的值。例如,我想得到6月14日上午7点到8点之间的记录,同样是6月15日的记录,以此类推 首先,我们应该知道它是如何存储在数据库中的。将varchar日期解析为datetime 假设我们将日期varchar存储为mm/dd/yyyy 因此,您应该使用SELECT convertdatetime,日期列101-mm/dd/yyyy 您可以查看更多类型的将varc

我的数据库是SQL Server,问题是日期存储为字符串类型。如果我执行该查询,它的顺序就不正确


我想做的是,在早上7点到8点之间获取每天的值。例如,我想得到6月14日上午7点到8点之间的记录,同样是6月15日的记录,以此类推

首先,我们应该知道它是如何存储在数据库中的。将varchar日期解析为datetime

假设我们将日期varchar存储为mm/dd/yyyy 因此,您应该使用SELECT convertdatetime,日期列101-mm/dd/yyyy

您可以查看更多类型的将varchar转换为datetime

好的,您必须首先将varchar转换为date-time,在本例中使用mm/dd/yyyy,我们应该这样编写查询

SELECT Id,Date,Name 
FROM people 
WHERE DATEPART(hh,Date) >= 7 
AND DATEPART(hh,Date) <= 8 
Order by DATEPART(ww,Date);

根据它的存储方式,您应该更改相关链接中列出的转换类型

是,但是dd/MM/yyyy,yyyy-MM-dd?您应该发布一个日期在您的表格上的外观示例DD/MM/yyyy hh MM ss 03-16-2001 07:00:20@CoKoder-你有点困惑。您说过格式是dd/MM/yyyy hh-MM ss,并以发布03-16-2001 07:00:20为例。但是您的示例的格式是mm-dd-yyyy-hh:mm:ss,那么是哪种格式呢?我只是很挑剔,因为编程也是如此。但dd/MM/yyyy也与2001年3月16日不匹配。一个使用/和一个使用-。如果你不想让它破产,你需要对它进行精确的描述。这里有一个convert资源,它可以减少癫痫发作::谢谢。。。。它起作用了。。。。还有一件事,我如何根据日期将这些天添加到数组中?convertdatetime,leftdt,10,103+convertdatetime,rightdt,8,108将适用于dd/MM/yyyy HH:MM:ss;I don’我不知道你想做什么,但是你也可以使用Datepart来获取日期、月份、年份等,如果你想要DAY DATEPARTdd、convertdatetime、DATE、101@CoKoder这听起来你最好发布一个新问题,并用一些示例代码仔细解释一下。
SELECT Id,Date,Name 
FROM people 
WHERE DATEPART(hh,convert(datetime, DATE, 101) ) >= 7 
AND DATEPART(hh,convert(datetime, DATE, 101) )  <= 8 
Order by convert(datetime, DATE, 101);