GVKun编程网logo

在MySQL SELECT中将日期格式化为ISO 8601

14

本文的目的是介绍在MySQLSELECT中将日期格式化为ISO8601的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于AngularJS:如何格式化ISO8601日期格式

本文的目的是介绍在MySQL SELECT中将日期格式化为ISO 8601的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于AngularJS:如何格式化ISO8601日期格式?、asp 将日期格式化为需要的格式、ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确、ISO 8601 和 RFC 3339 日期格式有什么区别?的知识。

本文目录一览:

在MySQL SELECT中将日期格式化为ISO 8601

在MySQL SELECT中将日期格式化为ISO 8601

我试图以标准时间戳记从数据库中获取日期并将其显示为ISO8601。我无法轻松地在PHP中执行此操作,因此尝试在SELECT语句中进行操作。这是我所拥有的,但是显示错误:

SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT(date,"%Y-%m-%dT%TZ")

我究竟做错了什么?

答案1

小编典典

DATE_FORMAT(DateColumn)必须在SELECT列表:

SELECT DATE_FORMAT(date, ''%Y-%m-%dT%TZ'') AS date_formattedFROM table_name ORDER BY id DESC

AngularJS:如何格式化ISO8601日期格式?

AngularJS:如何格式化ISO8601日期格式?

我使用 bootstrap-datetimepicker并使用ISO8601日期时间格式为yyyy-mm-ddThh:ii:ssZ,如选项部分中所述

在我的控制器,我做

transaction.date = $('.form_datetime input').val();

它将数据发送到后端作为(console.log)

created_on: "Wed,08 May 2013 23:18:32 -0000"

并保存在数据库中

2013-05-08 16:18:32-07

在我的模板中,我做

<td>{{ transaction.created_on | date:'medium'}}</td>

我看到我的HTML输出

Wed,08 May 2013 23:18:32 -0000

但是根据Angular doc,应该是2010年10月28日下午8:40:23的格式

我失踪了什么?

我不明白为什么没有人提供在过滤器中使用正确格式的简单答案?
{{item.date | date:'yyyy-MM-ddTHH:mm:ssZ'}}

这将格式化为ISO-8601

asp 将日期格式化为需要的格式

asp 将日期格式化为需要的格式

<%
''******************************
''函数:FormatDate(DateAndTime, para)
''参数:DateAndTime,要格式化的日期时间;para,样式。
''作者:阿里西西
''日期:2007/7/12
''描述:将日期格式化为需要的格式
''示例:<%=FormatDate(now(), 3)%>
''******************************
Public Function FormatDate(DateAndTime, para)
  On Error Resume Next
  Dim y, m, d, h, mi, s, strDateTime
  FormatDate = DateAndTime
  If Not IsNumeric(para) Then Exit Function
  If Not IsDate(DateAndTime) Then Exit Function
  y = CStr(Year(DateAndTime))
  m = CStr(Month(DateAndTime))
  If Len(m) = 1 Then m = "0" & m
  d = CStr(Day(DateAndTime))
  If Len(d) = 1 Then d = "0" & d
  h = CStr(Hour(DateAndTime))
  If Len(h) = 1 Then h = "0" & h
  mi = CStr(Minute(DateAndTime))
  If Len(mi) = 1 Then mi = "0" & mi
  s = CStr(Second(DateAndTime))
  If Len(s) = 1 Then s = "0" & s
  Select Case para
  Case "1"
   strDateTime = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
  Case "2"
   strDateTime = y & "-" & m & "-" & d
  Case "3"
   strDateTime = y & "/" & m & "/" & d
  Case "4"
   strDateTime = y & "年" & m & "月" & d & "日"
  Case "5"
   strDateTime = m & "-" & d & " " & h & ":" & mi
  Case "6"
   strDateTime = m & "/" & d
  Case "7"
   strDateTime = m & "月" & d & "日"
  Case "8"
   strDateTime = y & "年" & m & "月"
  Case "9"
   strDateTime = y & "-" & m
  Case "10"
   strDateTime = y & "/" & m
  Case "11"
   strDateTime = right(y,2) & "-" &m & "-" & d & " " & h & ":" & mi
  Case "12"
   strDateTime = right(y,2) & "-" &m & "-" & d
  Case "13"
   strDateTime = m & "-" & d
  Case Else
   strDateTime = DateAndTime
  End Select
 FormatDate = strDateTime
End Function
%>
您可能感兴趣的文章:
  • JS 日期验证正则附asp日期格式化函数
  • Asp 日期格式化问题
  • asp的一个日期格式化函数
  • ASP常用日期格式化函数 FormatDate()

ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确

ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确

错误日志:

{ [Error: Incorrect datetime value: ‘2012-08-24T17:29:11.683Z’ for
column ‘robot _refreshed_at’ at row 1] number: 1292,sqlStateMarker:
‘#’,sqlState: ‘22007’,message: ‘Incorrect datetime value:
\’2012-08-24T17:29:11.683Z\’ for column \’ robot_refreshed_at\’ at row
1′,sql: ‘INSERT INTO users
(id,name,count_moments,count_likes,count_followers,rob
ot_refreshed_at,robot_count_followers) VALUES
(\’1834084\’,\’NNNyingzi\’,\’5\’,\
‘0\’,\’0\’,\’2012-08-24T17:29:11.683Z\’,\’0\’)’,setMaxListeners:
[Function],emit: [Function],addListener: [Function],on: [Function],
once: [Function],removeListener: [Function],removeAllListeners:
[Function],listeners: [Function] }

我在Node.js中使用这段代码

@H_301_25@  if s instanceof Date
         return s.toISOString()

并在数据库中更新它们.

sql插入表达式如下:

@H_301_25@     INSERT INTO users (id,rob ot_refreshed_at,robot_count_followers) VALUES (\'1834084\',\'NNNyingzi\',\'5\',\ '0\',\'0\',\'2012-08-24T17:29:11.683Z\',\'0\')

我做错了吗?我只是从服务器中的表中使用PHPMyAdmin复制了一个表.

非常感谢.

最佳答案
如Date and Time Literals所述:

MysqL recognizes 07001 and 07002 values in these formats:

  • As a string in either @H_301_25@'YYYY-MM-DD HH:MM:SS' or @H_301_25@'YY-MM-DD HH:MM:SS' format. A “relaxed” Syntax is permitted here,too: Any punctuation character may be used as the delimiter between date parts or time parts. For example,@H_301_25@'2012-12-31 11:30:45',@H_301_25@'2012^12^31 11+30+45',@H_301_25@'2012/12/31 11*30*45',and @H_301_25@'2012@12@31 11^30^45' are equivalent.

  • As a string with no delimiters in either @H_301_25@'YYYYMMDDHHMMSS' or @H_301_25@'YYMMDDHHMMSS' format,provided that the string makes sense as a date. For example,@H_301_25@'20070523091528' and @H_301_25@'070523091528' are interpreted as @H_301_25@'2007-05-23 09:15:28',but @H_301_25@'071122129015' is illegal (it has a nonsensical minute part) and becomes @H_301_25@'0000-00-00 00:00:00'.

  • As a number in either @H_301_25@YYYYMMDDHHMMSS or @H_301_25@YYMMDDHHMMSS format,provided that the number makes sense as a date. For example,@H_301_25@19830905132800 and @H_301_25@830905132800 are interpreted as @H_301_25@'1983-09-05 13:28:00'.

A 07001 or 07002 value can include a trailing fractional seconds part in up to microseconds (6 digits) precision. Although this fractional part is recognized,it is discarded from values stored into 07001 or 07002 columns. For information about fractional seconds support in MysqL,see 07007.

您的日期字体’2012-08-24T17:29:11.683Z’不适合任何这些格式;建议你 –

>使用Node.js Date对象的toLocaleFormat()方法(确保MysqL连接的时区与Node.js的语言环境的时区匹配):

@H_301_25@  if s instanceof Date
         return s.toLocaleFormat("%Y-%m-%d %H:%M:%s")

>使用Node.js Date对象的valueOf()方法获取自UNIX纪元以来的时间值(以毫秒为单位),除以1000(从UNIX纪元开始获得秒数)并通过MysqL的FROM_UNIXTIME()函数.

ISO 8601 和 RFC 3339 日期格式有什么区别?

ISO 8601 和 RFC 3339 日期格式有什么区别?

ISO 8601和RFC 3339似乎是网络上常见的两种格式。我应该使用其中一个吗?一个只是扩展吗?我真的需要关心那么糟糕吗?

答案1

小编典典

一个只是扩展吗?

差不多,是的 - RFC 3339 被列为 ISO 8601 的配置文件。最值得注意的是 RFC 3339 指定了日期和时间的 完整表示
(只有小数秒是可选的)。RFC 也有一些细微的差别。例如,不允许截断只有两位数字的年份表示 - RFC 3339 要求 4 位年份,而 RFC
仅允许将句点字符用作小数秒的小数点。RFC 还允许将“T”替换为空格(或其他字符),而标准只允许省略它(并且仅在使用该表示的各方之间达成一致时)。

我不会太担心两者之间的差异,但是如果您的用例遇到它们的可能性不大,那么值得您看一眼:

  • RFC 3339
  • ISO 8601 上的维基百科条目

今天关于在MySQL SELECT中将日期格式化为ISO 8601的介绍到此结束,谢谢您的阅读,有关AngularJS:如何格式化ISO8601日期格式?、asp 将日期格式化为需要的格式、ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确、ISO 8601 和 RFC 3339 日期格式有什么区别?等更多相关知识的信息可以在本站进行查询。

本文标签: