Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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
Php 使用Datetime转换在Microsoft SQL Server中进行查询_Php_Sql Server - Fatal编程技术网

Php 使用Datetime转换在Microsoft SQL Server中进行查询

Php 使用Datetime转换在Microsoft SQL Server中进行查询,php,sql-server,Php,Sql Server,我想知道如何使用datetime convert查询数据: 例如,如果在ORACLE中使用: WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25' 在SQL Server中如何 WHERE ... 请帮忙给我一些建议 谢谢在sql server中,您可以执行以下操作 WHERE CAST(Date_Column AS DATE) = '20140325' --<-- 'YYYYMMDD' ANSI Standard 如

我想知道如何使用datetime convert查询数据:

例如,如果在ORACLE中使用:

WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'
在SQL Server中如何

WHERE ...
请帮忙给我一些建议


谢谢

在sql server中,您可以执行以下操作

WHERE CAST(Date_Column AS DATE) = '20140325'   --<--  'YYYYMMDD'  ANSI Standard

如果FQA_END_DATE是日期时间数据类型;无需进行字符转换即可将其与字符串进行比较。您只需要以明确的格式提供字符串,例如ISO格式yyyyMMdd

因此,如果FQA_END_DATE是一个datetime,则可以:

WHERE FQA_END_DATE = '20140325'
然而,如果FQA_END_DATE包含时间部分和日期,并且您只对日期部分进行比较感兴趣(并且您没有日期数据类型),则存在大量方法,但有一个技巧是通过float运行它

WHERE CAST(FLOOR(CAST(FQA_END_DATE AS FLOAT)) AS DATETIME) = '20140325'
从datetime变量中转换/删除时间部分的。 使用DATEPART或DATEDIFF函数也可以实现同样的效果

最终-您可以使用CONVERT将WHERE的两侧转换为相同的日期格式

WHERE CONVERT(DATETIME, FQA_END_DATE, 112) = CONVERT(DATETIME, '20140325', 112)
在这个问题上存在许多方法,希望这能给我们一些启示


我能给您的最好建议是,如果将日期作为字符串处理,请使用yyyyMMdd(20140325)的ISO格式,因为SQL Server可以自动转换该格式。

我遇到如下错误:查找错误-SQL Server数据库错误:类型日期不是定义的系统类型。您使用的是哪个版本的SQL Server?
WHERE CONVERT(DATETIME, FQA_END_DATE, 112) = CONVERT(DATETIME, '20140325', 112)