从数据库列中删除一些字符
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();
}
有没有办法删除数据库中的某些字符?我有一个日期作为字符串,如:“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();
}