How is 29.97 timecode generated over a full day without frame errors? A quick primer:American television was originally broadcast at 30 frames per second. In order to accommodate color information without losing backward-compatibility with B&amp;W televisions, the framerate was slowed by a factor of 1000/1001, to approximately 29.97 FPS.

29.97 footage was still labeled as 30 FPS; however, the difference in framerate caused the timecode to be off by a minute-and-a-half per day, causing sync issues for broadcasters. To counteract this, "dropframe" timecode was developed. At 30 FPS, there are 18000 frames per ten minutes; at 29.97 exactly, there are 17982 frames per ten minutes. To account for the eighteen-frame difference, we "skip" two frames on every minute not divisible by 10. For example:

30 FPS
00:00:59:29 + 1 frame = 00:01:00:00
00:04:59:29 + 1 frame = 00:05:00:00
00:09:59:29 + 1 frame = 00:10:00:00

29.97 FPS, dropframe
00:00:59;29 + 1 frame = 00:01:00;02
00:04:59;29 + 1 frame = 00:05:00;02
00:09:59;29 + 1 frame = 00:10:00;00


The question:The math works out at exactly 29.97, but the framerate is slightly faster -- 30*(1000/1001) works out to 29.97002997002... The difference is negligible for any single piece of footage; the error here only works about to about two-and-a-half frames per twenty-four hours. But how does a master sync generator account for these extra frames? There's no labeling scheme for them, and midnight will not occur on a clean frame.
As per the Broadcast Engineer's Reference Book, p. 203


  This correction will match DF time to real time to within
  approximately 2.6 frames per day; to eliminate the residual error the
  timecode generator can be reset each midnight.


So, apparently nothing.

As far as the "extra" frames, Charles Poynton says,


  If a timecode sequence is to be maintained longer than 24 hours,
  timecode should be jammed daily to reference clock time at an
  innocuous moment. No standard recommends when this should take place;
  however, the usual technique is to insert duplicate timecode numbers
  00:00:00;00 and 00:00:00;01. Editing equipment treats the duplicate
  codes as a timecode interruption.