Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 自年月日起至年月日_Mysql_Sql_Database_Oracle_To Date - Fatal编程技术网

Mysql 自年月日起至年月日

Mysql 自年月日起至年月日,mysql,sql,database,oracle,to-date,Mysql,Sql,Database,Oracle,To Date,我有以下日期格式的数据。 “1997年9月27日”,即DD-MON-YY 现在我想把它转换成YYYYMMDD。我正在使用下面的脚本来转换它 TO_CHAR(TO_DATE(CHD_DATE_FIRST_ACT,'DD-MON-YY'),'YYYYMMDD') 但这给了我以下输出 20970927 我希望这些数据是YYYYMMDD格式,这样输出看起来像这样-19970927如果'27-SEP-97'是一个字符串(这是您的话所建议的),那么to_this和to_的组合可能会完成这项工作: SQ

我有以下日期格式的数据。 “1997年9月27日”,即DD-MON-YY

现在我想把它转换成YYYYMMDD。我正在使用下面的脚本来转换它

TO_CHAR(TO_DATE(CHD_DATE_FIRST_ACT,'DD-MON-YY'),'YYYYMMDD') 
但这给了我以下输出

20970927

我希望这些数据是YYYYMMDD格式,这样输出看起来像这样-19970927

如果'27-SEP-97'是一个字符串(这是您的话所建议的),那么to_this和to_的组合可能会完成这项工作:

SQL> with test as (select '27-SEP-97' datum from dual)
  2  select to_char(to_date(datum, 'dd-mon-rr', 'nls_date_language = english'), 'yyyymmdd') result
  3  from test;

RESULT
--------------------------------------------------------------------------------
19970927

SQL>

如果'27-SEP-97'是一个字符串(这是你的话所暗示的),那么TO_this和TO_的组合可能会起作用:

SQL> with test as (select '27-SEP-97' datum from dual)
  2  select to_char(to_date(datum, 'dd-mon-rr', 'nls_date_language = english'), 'yyyymmdd') result
  3  from test;

RESULT
--------------------------------------------------------------------------------
19970927

SQL>
--在查询中使用RR而不是YY

从dual中选择至字符(至日期('1997年9月27日','DD-MON-RR'),'YYYYMMDD')

——在查询中使用RR而不是YY


从dual中选择至字符(至日期('1997年9月27日','DD-MON-RR'),'YYYYMMDD')

您可以使用mysql
replace
str\u to\u date
函数
replace
接受3个参数,如下所示
替换(字符串,查找字符串,替换为)

您只需将
-
替换为空白字符串
如果您的str是'27-SEP-97',则在mysql中执行以下命令以获得输出
19970927

选择替换(str_to_date('97年9月27日','%d-%b-%Y'),'-','')作为日期
输出

%b
用于表示缩写的月份名称

单击以下链接了解有关mysql日期和时间函数的更多信息

您可以使用mysql
replace
stru-to-date
函数
replace
接受3个参数,如下所示
替换(字符串,查找字符串,替换为)

您只需将
-
替换为空白字符串
如果您的str是'27-SEP-97',则在mysql中执行以下命令以获得输出
19970927

选择替换(str_to_date('97年9月27日','%d-%b-%Y'),'-','')作为日期
输出

%b
用于表示缩写的月份名称

单击以下链接了解有关mysql日期和时间函数的更多信息

Oracle还是MySQL?请仅标记您需要的RDBMS。数据库如何知道
97
是指1997年还是2097年,令人难以置信的是,这个问题仍然存在。我认为主要原因是:当Y2K问题是整个IT世界迄今为止最具争议的话题时,目前大多数软件开发人员还是婴儿。@WernfriedDomscheit:令人难以置信的是,这个问题仍然存在,距离下一个世纪末还有80多年了:-)实际上两位数的年份又变得越来越普遍了。最好是在日期之前。我可以喝这种牛奶吗?我不知道是2018年还是1918年的牛奶?@dnoeth,我想下一波问题将在2050年左右到来,因为人们使用format
RR
作为解决方案。幸运的是,我将在这个时候退休。Oracle还是MySQL?请仅标记您需要的RDBMS。数据库如何知道
97
是指1997年还是2097年,令人难以置信的是,这个问题仍然存在。我认为主要原因是:当Y2K问题是整个IT世界迄今为止最具争议的话题时,目前大多数软件开发人员还是婴儿。@WernfriedDomscheit:令人难以置信的是,这个问题仍然存在,距离下一个世纪末还有80多年了:-)实际上两位数的年份又变得越来越普遍了。最好是在日期之前。我可以喝这种牛奶吗?我不知道是2018年还是1918年的牛奶?@dnoeth,我想下一波问题将在2050年左右到来,因为人们使用format
RR
作为解决方案。幸运的是,我将在这个时候退休。这很有帮助。非常感谢。这很有帮助。非常感谢。这很有帮助。非常感谢。这很有帮助。非常感谢。这很有帮助。谢谢大家!@ShubhamSharan,很高兴我能帮忙这很有帮助。谢谢大家!@ShubhamSharan,很高兴我能帮上忙