我的一些队友搞砸了日期格式,现在我在Oracle数据库的表格中以YYYY-DD-MM格式2013-24-09。我想将其转换为日期格式并尝试使用以下代码:
var maxVersionCities = db.cities
.GroupBy(c => c.number)
.Select(grp => grp
.OrderByDescending(c => c.version)
.First())
.SelectMany(grp => grp);
仍然出现错误:
TO_DATE((SUBSTR(BEGINNING_DATE, 1, 4)||'-'||substr(BEGINNING_DATE, 9,2)||'-'||substr(BEGINNING_DATE,6, 2)), 'YYYY-MM-DD')
当我选择seprate子串到列时,所有内容都如下所示,我相信它没问题。
ERROR [HY000] ERROR: to_timestamp(): bad value 31 for day of the month
我想知道我在哪里弄错了。你能帮助我吗?
答案 0 :(得分:0)
如果值作为字符串存储在数据库中,并且您只想要一个日期,那么TO_DATE(BEGINNING_DATE, 'YYYY-DD-MM')
就足够了。如果您正在尝试修复数据库中的记录,则可以使用TO_CHAR(使用正确的格式)将其转换回来。
至于你的特定错误,如果它们都存储为字符串,你可能想要检查它失败的值,并确保其中一个特别有效(例如,它不是' t&#39 ; 2013-02-31'或其他)。