Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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 如何将char 10/2013转换为使用过滤器>=_Sql - Fatal编程技术网

Sql 如何将char 10/2013转换为使用过滤器>=

Sql 如何将char 10/2013转换为使用过滤器>=,sql,Sql,我的脚本的一部分有问题: where BillingMonth = '10/2013' 这很好,但我需要把它改成 where BillingMonth >= '10/2013' 这不起作用,因为BilingMonth是数据类型char(7),所以我不能使用= 有人能告诉我如何达到同样的效果吗?您应该修改格式,使月份为YYYY-MM。这将使简单的比较变得容易 以下是解决此问题的方法: where concat(right(BillingMonth, 4), left(BillingMon

我的脚本的一部分有问题:

where BillingMonth = '10/2013'
这很好,但我需要把它改成

where BillingMonth >= '10/2013'
这不起作用,因为
BilingMonth
是数据类型
char(7)
,所以我不能使用
=


有人能告诉我如何达到同样的效果吗?

您应该修改格式,使月份为YYYY-MM。这将使简单的比较变得容易

以下是解决此问题的方法:

where concat(right(BillingMonth, 4), left(BillingMonth, 2)) >= '201312'
不幸的是,这种语法因数据库而异。例如,上述方法在MySQL中有效。SQL Server中的等效项为:

where right(BillingMonth, 4) + left(BillingMonth, 2) >= '201312'

有些数据库不支持
left()
right()
,而是使用
substr()
substring()?博士后?Oracle?是的,问题在于格式,但这是在我的一个源系统中,而不是在我的源系统中。所以我想我可以联系管理员,但以防万一,这是一个很好的解决办法,所以非常感谢!