当前位置: 首页 > 知识库问答 >
问题:

如何按包含日期的varchar字段升序排序[重复]

易镜
2023-03-14

在设计时,我们将[DOJInGovrService]字段指定为varchardatatype。
现在,当我们尝试按此参数(DOJInGovrService)升序排序时,它没有给出所需的结果。
我知道这是数据类型问题,但现在无法更改数据类型,因为数据已经输入。

SELECT ED.class, 
       ED.CurrentOfficePlace, 
       ED.DOB, 
       ED.DOJInCurrentOff, 
       ED.DOJInGovrService, 
       ED.DOJInSamvarg, 
       ED.EmpName, 
       ED.HomePlace, ED.Qualification 
FROM tbl_EmplyeesBiodata ED
ORDER BY DOJInGovrService asc

输入的日期格式为DD-MM-YYYY(即28-08-2004)。

请帮帮我

共有1个答案

端木高邈
2023-03-14

这只是应该始终使用适当数据类型的众多原因之一。
即使表中有数据,也可以使用ALTER tableddl语句更改数据类型:

ALTER TABLE tableName
ALTER COLUMN ColumnName datetime2;

但是,您应该先复制此表,然后在副本上尝试更改,这样如果更改会使数据混乱,就不会有任何风险。
如果更改成功,则在活动表上进行更改。如果没有,您可以采用不同的方法,包括以下几个阶段:

  1. dojingovrservice列重命名为dojingovrservice_old。使用sp_rename.
  2. 使用alter tableddl stement添加具有正确数据类型(datetime2)的列DojinGovrService
  3. 使用dojingovrservice_old中的值更新新的dojingovrservice列。您可能需要使用convert.
  4. 使用ALTER TABLEddl语句删除DojinGovrService_old列。
 类似资料:
  • 问题内容: 我想按日期订购。 例如 我已经尝试过: 伯,这是行不通的。 我得到这个代替: 你能帮我吗? 问题答案: 如果要按日期排序, 请将其存储为日期而不是字符串。 除非您的日期字符串的格式为,否则它不会按您希望的顺序排序。 数据库可以按原样进行足够的工作,而无需人们加倍努力,因此,您应该尽可能地避免我喜欢的 SQL体操。 将其存储为日期,然后(如果需要)使用日期函数以形式获取它。 这样会比您尝

  • 如何获取字符串类型月份的升序。 如何进行asc排序请帮助

  • 问题内容: 我有个约会,等等。 我想按升序和降序对日期字段进行排序 有谁可以帮忙吗? 我已经尝试过对标题字段进行排序 按标题排序可使用以下代码: 问题答案: 试试这个… 您需要在上面的代码中更改日期格式。 UPDATED: 更新DateFormat进行检查。

  • 问题内容: 我知道这一定是相对简单的,但是我有一个JSON数据集,我想按日期排序。到目前为止,我无处不在遇到问题。现在,我将日期存储为。如果有帮助,我可以访问jquery,但是我意识到.sort()是本机JS。提前致谢。 问题答案: 假设您有一个javascript对象数组,只需使用自定义排序功能即可: Array 方法使用回调函数对数组进行排序,该回调函数传递给数组中的元素对。 如果返回值为负,

  • 问题内容: 我正在尝试按日期顺序显示文件数组(最后修改)。 我已经完成了遍历数组并将其排序到另一个数组中的购买循环,但是有没有更简单(更有效)的方法来做到这一点? 问题答案: *从PHP 7.2.0开始, *警告 已被弃用。强烈建议不要使用此功能。 为了后代的目的,如果在接受的答案中链接的论坛帖子丢失或不清楚,则所需的相关代码为: 在我的系统上对此进行了测试,并验证了它确实可以根据需要按文件mti

  • 我有一个JTable,它有两列,文件名和日期都被修改了。我为第一列添加了name String,并为第二个dateTime列添加了。 我将dateTime列呈现为字符串。 我还启用了 编辑2 我已经测试并弄明白了。如果使用DefaultTableModel而不重写它的getColumnClass()方法,那么在使用Date或Number列时会遇到麻烦。