从数据库列中删除一些字符

Removing some characters from a database column

有没有办法删除数据库中的某些字符?我有一个日期作为字符串,如:“2016-03-09”,我想删除去年的这些日期:(2016-1)。我正在使用 C# 和 mysql 来检索和存储数据。

可以使用 YEAR 函数删除特定年份的记录:

-- Delete records for a specific year
DELETE FROM my_table WHERE YEAR(date_col) = 2015;

请确保在 运行 对实时数据库进行任何删除之前进行备份。

你的意思不是很清楚。但是可以使用 LIKE 命令从数据库中删除基于字符串值的记录:

DELETE FROM my_table WHERE date_col LIKE '2016-__-__'

下划线是任何字符的通配符。因此将匹配 2016 年的所有日期。

我有几点建议;

I have a dates as strings like..

为什么?为什么将 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();
}