Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Sql 如何转换°&;到现在为止?_Sql_Date_Pervasive_Pervasive Sql - Fatal编程技术网

Sql 如何转换°&;到现在为止?

Sql 如何转换°&;到现在为止?,sql,date,pervasive,pervasive-sql,Sql,Date,Pervasive,Pervasive Sql,我正在转换一个80年代创建的数据库,似乎有些表的日期存储为字符。有两列数据。 第一列的数据格式如下: °& C2 024 第二列是纯文本说明: Description of some stuff 数据被导入到“表”视图中。C2定义表格标题,024定义行和°&定义表格数据拉入的日期。例如: Date: 2/21/2007 C1 C2 C3 C4 000

我正在转换一个80年代创建的数据库,似乎有些表的日期存储为字符。有两列数据。 第一列的数据格式如下:

°& C2 024
第二列是纯文本说明:

Description of some stuff
数据被导入到“表”视图中。C2定义表格标题,024定义行和°&定义表格数据拉入的日期。例如:

 Date: 2/21/2007
       C1                   C2                       C3                   C4
 000
 003
 006
 009
 012
 015
 018
 021
 024                        Description of some stu...
 027
我尝试过将日期转换为十六进制,并将十六进制与字符地图进行比较,但没有运气

我已尝试按照以下说明使用unix date:但没有成功

样本值和已知日期:

°&  -  2/21/2007
¬&  -  2/7/2007
+(  -  2/6/2007
ª&  -  2/5/2007

你的问题无法按要求回答。知道日期栏中的数字是至关重要的,因为它们确实是数字。它们不是30年后您碰巧使用的编码中的字符串

您提到了
°&
序列。如果您使用的是带ISO8859-1编码的Linux,则该度符号为B0。如果您使用的是带有CP850编码的Windows控制台,则为F8。我们也不知道数据的endianism,这可能解释了
+(
)的奥秘


因此,首要的任务是了解列中的实际字节。以十六进制打印它们,并将它们转换为解释为大端和小端的十进制。然后,也许你会看到一种模式,让你建立纪元。从那里,一切都是新鲜的粉末和蓝天。

本页说ASCII码用于存储数据自1900年1月1日(或之前)起的天数。这类似于Lotus 1-2-3、MS Excel和其他软件使用的序列日期技术。

您是如何获得“已知日期”的对于那些编码版本?我不认为日期是以字符形式存储的。它是一种二进制格式,出于某种原因,您的程序正在将其解释并显示为字符。您能编辑您的帖子以显示二进制表示吗?我弄乱了ascii->二进制转换,然后将值与“已知日期”进行比较。问题是第三个示例
+(
没有意义(即使在二进制转换之外,它也是奇怪的错位)。如果忽略第三个值,那么从二进制->十进制表示到“已知日期”的回归不是线性的,所以我无法想象二进制是答案,也可能不是任何其他ascii->BaseN转换。您确实在那里找到了一些可怕的资源。ascii表似乎是一个拉丁-1表。ascii是一个7位代码。它在127处停止。“二进制转换”page将XMLHttpRequest中的输入文本发送到服务器进行转换(他们不知道如何在javascript中本地实现这一点?!),并且它没有正确地转义参数,因此它实际上丢失了符号(以及其后的所有内容)。返回的二进制数实际上是度符号(0xc2 0xb0)的UTF-8。不,一般来说,您不应该相信复制和粘贴操作不会更改字符编码。在您的标记中,您提到了普及和普及.SQL。数据文件是实际的Btrieve/普及文件吗?您是否尝试过使用诸如函数执行器之类的普及工具打开文件,并根据Btrieve/普及所看到的内容查看数据例如,Btrieve日期格式为4字节。2字节表示年份,1字节表示月份,1字节表示日期。