2017-02-23 1 views
0

DateTime 변수를 Timestamp으로 변환하려고합니다. 내 변수는 현재 형식이 : 1/23/17 2:14:31 PM이고, 나는 이것을 Oracle SQL Developer에 사용할 수 있도록 TimeStamp이되도록하고 싶습니다. 예 : 23-JAN-17 2.14.31.000000000 PM.DateTime에서 TimeStamp로 변환

나는 이런 식으로 변환하는 것을 시도했다 :

DateTime d = DateTime.Now.AddDays(-31); 
Console.WriteLine(d.ToUniversalTime().ToString("O")); 

하지만 출력은 TimeStamp처럼 아무것도 :

2017-01-23T14:14:31.5838355Z 
+0

왜 SQL에 일반 datetime을 사용할 수 있습니까? – NicoRiff

+0

데이터베이스를 만든 사람이 해당 형식의 TimeStamp 열을 만들었으므로 변경할 수 없습니다. –

+1

https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.80).aspx 및 https://msdn.microsoft.com/en-us/library/8kb3ddd4(v= vs.80) .aspx 그리고 그들 중 한 명이 당신의 질문에 대답해야합니다. 또한 연결을 관리하는 객체가 자동으로 변환을 수행하는지 여부를 확인할 수도 있습니다. – Chris

답변

2

이 시도하십시오 :

DateTime d = DateTime.Now.AddDays(-31); 
long epoch = (d.Ticks - 621355968000000000)/10000000; 
Console.WriteLine(d.ToUniversalTime().ToString("dd-MMM-yy HH:mm:ss") + ":" + epoch); 
+0

당신의'epoch'는 1970 년 이래로 "유닉스"초 카운트로 보입니다. ___ 관련성은 무엇입니까? ___'long epoch = ((DateTimeOffset) d) .ToUnixTimeSeconds();'를 사용하는 것을 고려하십시오. 읽기 쉽습니다. –

0

이 하나

DateTime d = DateTime.Now.AddDays(-31); 
Console.WriteLine(d.ToUniversalTime().ToString("hh-MMM-yy hh.mm.ss.ffffff tt")); 
+0

"PM"지정자의 월은 문화권에 따라 달라질 수 있습니다. 예를 들어, ""es-ES "(스페인어 (스페인))"23-ene.-17 02.14.31.000000000 "'('Jan' 'en '이다.'PM은 아무것도 아니다.). –

관련 문제