有没有办法删除数据库中的某些字符?我有一个日期字符串:" 2016-03-09"我想删除去年的这些日期:(2016-1)。我使用c#和mysql来检索和存储数据。
答案 0 :(得分:1)
我有一些建议;
我的日期为字符串,如..
为什么呢?为什么将DateTime
值存储为string
?您应该始终为变量使用正确的数据库类型。将列类型更改为datetime
并保留DateTime
值,而不是字符串表示形式。
阅读:Bad habits to kick : choosing the wrong data type
然后你可以执行删除你的命令,该命令将去年发送为参数,如;
using(var con = new MySqlConnection(conString))
using(var cmd = con.CreateCommand())
{
cmd.CommandText = @"delete from yourTableName
where YEAR(yourColumnName) = @year";
cmd.Parameters.Add("@year", MySqlDbType.Int).Value = DateTime.Now.Year - 1;
con.Open();
cmd.ExecuteNonQuery();
}
答案 1 :(得分:0)
你的意思并不是很清楚。但是,可以使用LIKE命令从数据库中删除基于字符串值的记录:
DELETE FROM my_table WHERE date_col LIKE '2016-__-__'
下划线是任何角色的通配符。所以2016年的所有日期都将匹配。
答案 2 :(得分:-1)
可以使用YEAR
功能
-- Delete records for a specific year
DELETE FROM my_table WHERE YEAR(date_col) = 2015;
在运行实时数据库上的任何删除之前,请确保备份。