【问题标题】:Out putting birth years with TO_CHAR(M.DOB, 'YYYY')用 TO_CHAR(M.DOB, 'YYYY') 输出出生年份
【发布时间】:2019-12-03 21:42:19
【问题描述】:

我有一个存储成员和出生日期的数据库。

我要“以“DHDSJHDSDH”为父母,按姓氏和名字的字母顺序列出所有成员的姓名和出生年份

我目前有Current Code 除了生日之外,一切都有效,因为对于生日在 1993 年的人,它会输出 2093。

【问题讨论】:

  • 嗨,sh ahern,欢迎来到 StackOverflow!请在此处发布您的实际代码,而不是外部图片。
  • 一个可重现的测试用例会有所帮助。但是,如果您实际上使用的是 YYYY 格式掩码,这意味着数据被错误地插入到表中,并且出生日期实际上被插入为 2093 而不是 1993。
  • 您也可以使用 year() 函数提取年份,假设 DOB 实际上是日期数据类型之一。

标签: sql database oracle


【解决方案1】:

如果您发布了代码或表格结构,那肯定会有所帮助,但我会尝试一下。我想你想要一些类似的东西:

SELECT FamilyName,
       GivenName,
       CONVERT(varchar, yearOfBirth, 101)
FROM schema.TableYouUse
ORDER BY FamilyName;

就像我说的,这可能根本不是您要问的。我所做的是查询表中人员的名字、姓氏和出生日期。我使用 CONVERT 来制作出生日期列 varchar 而不是 DATETIME,这样我们就可以按照我们喜欢的方式对其进行格式化。

注意 CONVERT 带参数,第一个参数是目标表达式类型,第二个是目标日期,最后我们使用 101 将其格式化为您需要的方式。这是转换文档的链接,您可以使用更多样式https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15

最后,要解决疯狂的 2093 年而不是 1993 年,这对我来说听起来像是糟糕的数据输入。

【讨论】:

  • 我将编辑一张照片,以表明我的数据输入很好,因为它显示为正确的年份,所以我很困惑
  • convert 是一个 SQLServer 函数。该问题被标记为没有 convert 函数的 Oracle。
  • 啊,我的错我完全忽略了我正在查看 sql 标签的 oracle 标签。我猜我太渴望帮助了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
相关资源
最近更新 更多