c# - SELECT 过滤器查询中的日期格式

标签 c# mysql select date-format

我有一个日期类型的字段。我以 dd/mm/yyyy 格式记录数据。
显示得很好啊但是当我尝试在我的选择查询中使用过滤器时,它会返回每一行。我试过这个:

SELECT *
FROM MyTable
WHERE dt_start >=  '01/04/2007'

SELECT *
FROM MyTable
WHERE dt_start >=  DATE_FORMAT('01/04/2007', "%d/%m/%yyyy")  

现在,如果我尝试这个,它会完美地工作:

SELECT *
FROM MyTable
WHERE dt_start >=  '2007/04/01'  

我知道这是其网站上的标准 MySQL 日期格式。但我想知道实现这一目标的方法。

最佳答案

您想要转换日期的语法如下:

UPDATE [table name] SET [date field name] = STR_TO_DATE('01/04/2007', '%Y-%m-%d')

这会将我们所有的日期转换为标准,就像戈登·利诺夫所说的那样。如果您希望它们在拉出时看起来像最初的日期,那么您可以在查询中使用日期格式:

SELECT DATE_FORMAT([date field], '%m/%d/%Y') AS myDate FROM [table name]

这有道理吗? 我也同意戈登的观点,即使用标准格式存储日期更容易。您可以通过这种方式更轻松地操作和比较日期。

编辑

SELECT * FROM [your table] WHERE date >= STR_TO_DATE('01/04/2007', '%m/%d/%Y')

有了这个,您不必更改日期类型,只需将要评估的字符串更改为 where 子句中的日期即可。这是你想要的吗?

关于c# - SELECT 过滤器查询中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072052/

相关文章:

PHP MySQL 选择日期时间值在过去 n 分钟内的行

c# - Doxygen 没有记录静态类?

c# - 使用 DateTimeOffset 作为参数问题进行过滤

c# - 更改字符串以将 "A"、 "An"、 "The"移动到 c# 中字符串末尾的最佳方法

php - 我可以将 SQL 结果保存在 PHP 中的变量中吗

r - 如何删除所有列都为零的行

php - 选择并列出 child 和 parent

c# - 尝试将字节数组插入数据库时​​从 varchar 隐式转换为 varbinary 错误

SELECT 中的 MySQL IF

PHP、MySQL : mysql substitute for php in_array function