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

时间:2016-03-09 09:37:16

标签: c# mysql character string-formatting

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

3 个答案:

答案 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;

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