如何在SQL中拆分列

时间:2012-11-27 07:01:57

标签: mysql sql

在我的表格中,我有一列current_date,价值是2012-11-27。

继承我的代码

$query = QModel::query("SELECT * FROM transaction WHERE current_date='$order_date'"); 

$order_date的值仅为年月“ 2012-10 ”,我如何才能将current_date拆分为仅年月“ 2012- 10 “......

我应该使用CHARINDEX拆分current_date ???怎么样...

感谢

4 个答案:

答案 0 :(得分:1)

如果您需要在一个月内选择所有记录,您可以执行以下操作:

SELECT * 
FROM table
WHERE current_date >= convert(datetime, '20121001', 112) and current_date < convert(datetime, '20121101', 112)

我无法建议使用monthyear函数,因为索引不起作用

更新: AFAIK,在MySQL中它将是

SELECT * 
FROM table
WHERE current_date >= str_to_date('20121001', '%y%m%d') and current_date < str_to_date('20121101', '%y%m%d')

答案 1 :(得分:0)

如果您使用MySQL

SELECT * 
FROM table 
WHERE YEAR(current_date) = 2012 AND
      MONTH(current_date) = 10

代表SQL Server

SELECT * 
FROM table 
WHERE DATEPART(year,current_date) = 2012 AND
      DATEPART(month, current_date) = 10

答案 2 :(得分:0)

试试这个:

适用于mysql以及sql server

SELECT * 
FROM table 
WHERE month(current_date)=10
and   year(current_date)=2012

答案 3 :(得分:0)

如果您使用的是MSSQL,请尝试以下方法:

select * 
from table
where datepart(year, current_date) = 2012
    and datepart(month, current_date) = 10