我有一个日期类型的字段。我以 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/